apport-2.20.11/0000775000000000000000000000000015020112462010043 5ustar apport-2.20.11/AUTHORS0000664000000000000000000000175614416105132011130 0ustar Copyright: --------- General: Copyright (C) 2006 - 2015 Canonical Ltd. backends/packaging_rpm.py: Copyright (C) 2007 Red Hat Inc. Authors and Contributors: ------------------------- Martin Pitt : Lead developer, design, backend, GTK frontend development, maintenance of other frontends Michael Hofmann : Creation of Qt4 and CLI frontends Richard A. Johnson : Changed Qt4 frontend to KDE frontend Robert Collins : Python crash hook Will Woods : RPM packaging backend Matt Zimmerman : Convenience function library for hooks (apport/hookutils.py) Troy James Sobotka : Apport icon (apport/apport.svg) Kees Cook : Various fixes, additional GDB output, SEGV parser. Brian Murray : Various fixes, installation of packages from Launchpad and PPAs, utilization of a sandbox for gdb. apport-2.20.11/COPYING0000664000000000000000000004310313562354544011121 0ustar GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. apport-2.20.11/NEWS0000664000000000000000000041355714416106601010567 0ustar This file summarizes the major and interesting changes for each release. For a detailed list of changes, please see ChangeLog. 2.20.11 (2019-05-16) -------------------- * SECURITY UPDATE: Ensure that we propely handle crashes that originate from a PID namespace. Thanks to Sander Bos for discovering this issue. (CVE-2018-6552, LP: #1746668) * backends/packaging-apt-dpkg.py: switch to using python3-launchpadlib to communicate with Launchpad thereby gaining retry capabilities and using its cache. * backends/packaging-apt-dpkg.py: utilize a global mapping of files to packages instead of searching a Contents.gz file multiple times, additionally write this mapping to disk so subsequent lookups and retraces are quicker. (LP: #1370230) * apport/ui.py: Handle old reports generated pre-apport with "remember" option. If the option isn't there, consider as false. (LP: #1791324) * apport/report.py: End our gdb batch script with a separator, to accomodate new exit codes from gdb 8.2.50. Thanks Steve Langasek! * data/apport: Introduce support for non-positional arguments so we can easily extend core_pattern in the future (LP: #1732962) * apport/report.py: Have add_gdb_info return a FileNotFoundError if gdb or the crashing executable are not found and modify whoopsie-upload-all to upload crashes in that situation. (LP: #1820132) * apport/report.py, apport/ui.py: raise ValueError if the pid is not accessible, display an error message for that or an invalid pid. (LP: #1396160) * switch from pyflakes to pyflakes3, drop some python2 code * backends/packaging-apt-dpkg.py: strip /usr from binary names so the .list file will match. * test/*: switch from using deprecated imp to importlib, modify binary locations for merged-usr changes. * apport/report.py: reorder directories check for binaries so /usr is checked first. * data/whoopsie-upload-all: confirm the exception has an errno before using it in a comparison. (LP: #1824152) * test/test_report.py: update test_add_proc_info for function raising a ValueError. * apport/REThread.py, apport/ui.py: Avoid deprecation warnings by switching from isAlive() to is_alive(). * apport/ui.py: if report.get_timestamp() returns None don't try and use it in a comparison. (LP: #1658188) * test/test_apport_valgrind.py: specify the location for true. * apport/ui.py: when using ubuntu-bug properly handle executables which start with /snap/bin. (LP: #1760220) * Fix PEP8 605 warnings and ignore 503,504 ones. * tests/test_ui_gtk.py: Increase the timeout so that when the autopkgtest infrastructure is busy the tests should not fail. (LP: #1780767) * problem_report.py: Decrease zlib compression level from 9 to 6. After a crash, this reduces the time Apport spends compressing the core dump by an order of magnitude. Thanks to Anders Kaseorg for the analysis and initial patch. (LP: #1537635) 2.20.10 (2018-05-09) -------------------- * backends/packaging-apt-dpkg.py: when using a permanent sandbox better check for the package being already available thereby quantity of downloads. * apport/report.py: Use timeout parameter in subprocess to limit how long we'll wait for gdb to return information as gdb can hang with some core files. * data/apport: Fix PEP8 issues * apport/ui.py: Include ProblemType in reports which are updated as package hooks may expect the report to have a ProblemType. (LP: #1766794) * test/test_ui.py: modify run_crash_kernel test to account for the fact that linux-image-$kvers-$flavor is now built from the linux-signed source package on amd64 and ppc64el. (LP: #1766740) 2.20.9 (2018-02-14) ------------------- * Re-enable container support. Thanks to Stéphane Graber! (LP: #1732518) * Add code preventing a user from confusing apport by using a manually crafted filesystem inside a combination of a user and mount namespace. Thanks to Stéphane Graber! * Add a check in apport receiver for the number of arguments so that should another argument be added later, the receiver will simply ignore the crash until it itself gets updated. Thanks to Stéphane Graber! * data/apport: add a second os.path.exists check to ensure we do not receive a Traceback in is_container_id(). (LP: #1733366) * apport/sandboxutils.py: when installing extra packages do not install the debug versions of them as this was installing gdb-dbg. If debug versions of a package are specifically required they can be passed as an extra-package. * backends/packaging-apt-dpkg.py: when reusing a sandbox do not remove conflicting packages when they conflict with themselves, or when they conflict with but also provide a virtual package. * bin/apport-retrace: add a --no-stracktrace-source option that does not do the work of creating a StacktraceSource field in the retraced report thereby decreasing the time to retrace. * apport/report.py: gdb's version 8.0.90 output changed from Warning to warning however to support using gdb in sandbox we need to support either case so check for both. * data/apport: add an exception handler in case either name space can not be found. * data/general-hooks/generic.py: change JournalErrors to contain errors not warnings. (LP: #1738581) * data/apport: wait for lock, with 30s timeout (LP: #1746874) 2.20.8 (2017-11-15) ------------------- * SECURITY UPDATE: Denial of service via resource exhaustion and privilege escalation when handling crashes of tainted processes. - When /proc/sys/fs/suid_dumpable is set to 2, do not assume that the user and group owning the /proc//stat file is the same owner and group that started the process. Rather check the dump mode of the crashed process and do not write a core file if its value is 2. Thanks to Sander Bos for discovering this issue! (CVE-2017-14177, LP: #1726372) * SECURITY UPDATE: Denial of service via resource exhaustion, privilege escalation, and possible container escape when handling crashes of processes inside PID namespaces. - Change the method for determining if a crash is from a container so that there are no false positives from software using PID namespaces. Additionally, disable container crash forwarding by ignoring crashes that occur in a PID namespace. This functionality may be re-enabled in a future update. Thanks to Sander Bos for discovering this issue! (CVE-2017-14180, LP: #1726372) * apport/hookutils.py: modify package_versions to return an empty string if packages is empty. (LP: #1723822) * bin/apport-cli: read until instead of a single character when # of apport options is non-unique with a single character. Thanks to Chad Smith for the patch. (LP: #1722564) 2.20.7 (2017-08-29) ------------------- * Fix new pep8 failures in artful - E722 do not use bare except. * apport/REThread.py: A bare except needs to be used so that we can catch the dialog being closed. * test/test_report.py: Be a little patient and give some time for the core file to show up. * backends/packaging-apt-dpkg.py: Don't install the version mentioned in a versioned dep, rather install the latest version of that dep. * backends/packaging-apt-dpkg.py: search -proposed last so we prefer packages from other pockets. 2.20.6 (2017-07-18) ------------------- * SECURITY FIX: Fix path traversal vulnerability with hooks execution. Ensure that ExecutablePath: fields loaded from reports do not contain directories. Until now, an attacker could trick a user into opening a malicious .crash file containing ExecutablePath: /opt/../../../../some/dir/foo which would execute /some/dir/foo.py with arbitrary code. Thanks to Felix Wilhelm for discovering this! (CVE-2017-10708, LP: #1700573) * Stop installing a MIME handler for crash files as it ends up causing more trouble than it is worth. * bin/crash-digger: Set self.lp if the crashdb is Launchpad. * test/test_backend_apt_dpkg.py: cache directories contain the architecture in the path if if is not the native arch. * apport/crashdb_impl/launchpad.py: Don't make a contentless change to a bug, it just generates more bug mail. * apport/crashdb_impl/launchpad.py: Handle FailedToDecompressContent httplib2 error when downloading a broken attachment. * Convert regular expressions to raw strings to avoid deprecation warnings with Python version 3.6. Thanks to Michael Hudson-Doyle for the patch! * test/test_signal_crashes.py: a ulimit of 1M bytes isn't enough to produce a core file anymore so bump it to 10M. 2.20.5 (2017-05-12) ------------------- * bin/apport-retrace: Comment on bug reports when an invalid core file is encountered. (LP: #1647635) * Switch to using HxW directory names for app icons instead of just one number. Thanks to Jeremy Bicha for the patch. * apport/ui.py: Ensure the Date field exists in a report before using it in a comparison. (LP: #1658188) * bin/apport-retrace: Add in a --gdb-sandbox switch which creates or utilizes a sandbox with the report's distribution release and the host system's architecture for installing and running gdb. (LP: #1517257) * apport/hookutils.py: Don't crash if .xsession-errors is not readable by the user. (LP: #1675928) * bin/apport-retrace: Be specific about which required field is missing from a report and not retracing it. * Disable report.test_add_gdb_info_abort_glib test case for now, as the glib assertion message is broken under current Ubuntu (LP: #1689344) 2.20.4 (2016-12-14) ------------------- * SECURITY FIX: Restrict a report's CrashDB field to literals. Use ast.literal_eval() instead of the generic eval(), to prevent arbitrary code execution from malicious .crash files. A user could be tricked into opening a crash file whose CrashDB field contains an exec(), open(), or similar commands; this is fairly easy as we install a MIME handler for these. Thanks to Donncha O'Cearbhaill for discovering this! (CVE-2016-9949, LP: #1648806) * SECURITY FIX: Fix path traversal vulnerability with hooks execution. Ensure that Package: and SourcePackage: fields loaded from reports do not contain directories. Until now, an attacker could trick a user into opening a malicious .crash file containing Package: ../../../../some/dir/foo which would execute /some/dir/foo.py with arbitrary code. Thanks to Donncha O'Cearbhaill for discovering this! (CVE-2016-9950, LP: #1648806) * SECURITY FIX: apport-{gtk,kde}: Only offer "Relaunch" for recent /var/crash crashes. It only makes sense to offer relaunching for crashes that just happened and the apport UI got triggered on those. When opening a .crash file copied from somewhere else or after the crash happened, this is even actively dangerous as a malicious crash file can specify any arbitrary command to run. Thanks to Donncha O'Cearbhaill for discovering this! (CVE-2016-9951, LP: #1648806) * test_backend_apt_dpkg.py: Move tests from Ubuntu 15.10 "wily" (which is EOL now) to 16.04 LTS "xenial". * packaging-apt-dpkg.py: Explicitly set Dir::State::Status to the host dpkg status file for get_source_tree(), to work with apt 1.3~pre4. * packaging-apt-dpkg.py: Change the proxy settings to use "DIRECT" instead of "direct". The latter never really worked, but APT did not complain about it. * data/iwlwifi_error_dump: Fix add_package() call. * hookutils.py, attach_mac_events(): Only attach /proc/version_signature if that actually exists. * test/test_report.py: Slightly relax stack trace checks to also work with glibc 2.24. * apport-gtk: Specify module version with GI imports to avoid warnings. Thanks Anatoly Techtonik. (LP: #1502173) * test/run: Prefer pycodestyle over pep8. * backends/packaging-apt-dpkg.py: provide a fallback method if using zgrep to search for a file in Contents.gz fails due to a lack of memory. Thanks Brian Murray. * bin/apport-retrace: When --core-file is used instead of loading the core file and adding it to the apport report just pass the file reference to gdb. 2.20.3 (2016-07-28) ------------------- * problem_report.py: Fail with proper exception when trying to assign a list to a report key, or when trying to assing a tuple with more than 4 entries. (LP: #1596713) * test_backend_apt_dpkg.py: Install GPG key for ddebs.ubuntu.com to avoid apt authentication errors. 2.20.2 (2016-06-19) ------------------- * problem_report.py: Make assertion of invalid key names more verbose. * hookutils.py: Fix generation of valid report key names from arbitrary paths in attach_file() and related functions. This will now replace all invalid characters with dots, not just a few known invalid ones. (LP: #1566975) * problem_report.py: Instead of AssertionError, raise a ValueError for invalid key names and TypeError for invalid kinds of values. Thanks Barry Warsaw. * Don't ignore OSError in Report.add_gdb_info(), as we do want to fail with an useful error message if gdb cannot be called in apport-retrace. Move the catching to the UI as not having gdb installed is still fine for reporting clients. (LP: #1579949) * Show gdb error messages in Report.add_gdb_info() OSError exception when gdb fails. (LP: #1579897) * hookutils, attach_root_command_outputs(): Return str again, like before 2.15.2. (LP: #1370259) * Stop issuing "set architecture" gdb commands on ARM and Power; these only applied to 32 bit platforms and are apparently not needed any more with recent gdb versions. (LP: #1585702) * Disable report.test_add_gdb_info_abort_libnih test case for now, as libnih is broken under current Ubuntu (LP: #1580601) * do-release: Drop generation of ChangeLog. Interesting changes are already documented here, and the details can be seen in the bzr log. 2.20.1 (2016-03-31) ------------------- * Fix signal_crashes.test_modify_after_start test when running as root. * Relax report.test_add_gdb_info gdb warning check, as this changed with gdb 7.10.90. * crash-digger: Untag bugs which cannot be retraced instead of stopping crash-digger. This led to too many pointless manual restarts on broken bug reports. * Disambiguate overly generic Python exceptions in duplicate signature computation: dbus-glib's DBusException wraps a "real" server-side exception, so add the class of that to disambiguate different crashes; for OSError that is not a known subclass like FileNotFoundError, add the errno. (LP: #989819) 2.20 (2016-02-12) ----------------- * Reimplement forwarding crashes into a container, via activating the new apport-forward.socket in the container and handing over the core dump fd. This is a much safer way than the original implementation with nsexec. Thanks Stéphane Graber! (LP: #1445064) * Drop obsolete signal_crashes.test_ns_forward_privilege() test case. This code was dropped long ago. 2.19.4 (2016-01-26) ------------------- * Fix fileutils.test_find_package_desktopfile test for symlinks and other unowned files in /usr/share/applications/. * Fix ui.test_run_crash_anonymity test case to not fail if the base64 encoded core dump happens to contain the user name, as that's just by chance. * Fix test_hooks.py for unreleased gcc versions which have a different --version format. * hookutils.py, attach_hardware(): Stop attaching /var/log/udev. This was an upstart-ism, mostly redundant with the udev db and is not being written under systemd. (LP: #1537211) 2.19.3 (2015-12-08) ------------------- * apport: Fix comparison against SIGQUIT to work for current Python versions. * apt/dpkg: Fix source record lookup in install_packages. Thanks Brian Murray! * hookutils.py, attach_gsettings_schema(): Don't replace the schema variable; fixes attaching relocatable schemas. Thanks Sébastien Bacher! * generic hook: Limit JournalErrors to the 1.000 last lines. This avoids long report load times when processes cause massive log spew. (LP: #1516947) * Add key filtering to ProblemReport.load(). * Don't read the entire report when determining the CrashCounter. This avoids long delays for existing large reports. * test_python_crashes.py: Be less sensitive to the precise names of gvfs-metadata D-Bus service files. * Move backend_apt_dpkg -dbgsym test cases to Ubuntu 15.10. * Tests: Move to unittest's builtin "mock" module. 2.19.2 (2015-10-27) ------------------- * SECURITY FIX: When determining the path of a Python module for a program like "python -m module_name", avoid actually importing and running the module; this could lead to local root privilege escalation. Thanks to Gabriel Campana for discovering this and the fix! (CVE-2015-1341, LP: #1507480) * apt/dpkg: Don't mark packages downloaded from Launchpad for installation by apt. Thanks Brian Murray. * Fix backend_apt_dpkg.test_install_packages_system for recent "Fall back to direct Launchpad ddeb download" fix. coreutils-dbgsym should now always be available independent of whether the local system has ddeb apt sources. * test_backend_apt_dpkg.py: Reset internal apt caches between tests. Avoids random test failures due to leaking paths from previous test cases. 2.19.1 (2015-10-07) ------------------- * Consistently intercept "report file already exists" errors in all writers of report files (package_hook, kernel_crashdump, and similar) to avoid unhandled exceptions on those. (LP: #1500450) * apt/dpkg: Fall back to direct Launchpad ddeb download if we can't find it in the apt cache. Thanks Brian Murray! (LP: #1500557) * doc/data-format.tex: Clarify that key names are being treated as case sensitive (unlike RFC822). 2.19 (2015-09-24) ----------------- * apport: Drop re-nicing. This might decrease the time a user has to wait for apport to finish the core dump for a crashed/hanging foreground process. (See LP #1278780) * kernel_crashdump: Enforce that the log/dmesg files are not a symlink. This prevents normal users from pre-creating a symlink to the predictable .crash file, and thus triggering a "fill up disk" DoS attack when the .crash report tries to include itself. Thanks to halfdog for discovering this! (CVE-2015-1338, part of LP #1492570) * SECURITY FIX: Fix all writers of report files (package_hook, kernel_crashdump, and similar) to open the report file exclusively, i. e. fail if they already exist. This prevents privilege escalation through symlink attacks. Note that this will also prevent overwriting previous reports with the same same. Thanks to halfdog for discovering this! (CVE-2015-1338, LP: #1492570) * apport: Ignore process restarts from systemd's watchdog. Their traces are usually useless as they don't have any information about the actual reasaon why processes hang (like VM suspends or kernel lockups with bad hardware) (LP: #1433320) * Switch all executables to use Python 3 by default. 2.18.1 (2015-09-10) ------------------- * test_hooks.py: Adjust for gcc executable names that don't include the minor version number. * When determinining the logind session and $XDG_SESSION_ID is not set, fall back to reading it from /proc/pid/cgroup. * whoopsie-upload-all: Intercept OSError too (e. g. "No space left on device"). (LP: #1476258) * apport-retrace: Only consider the file name of a source file, not its path; the latter often contains parts like "../" or directories which are specific to a build machine. This fixes most broken StacktraceSource results. (LP: #1462491) * packaging.py: Only consider first word in /etc/os-release's NAME value. This works around Debian's inconsistent value. (LP: #1408245) * Unify and simplify Package: field generation in kernel_crashdump, kernel_oops, and package_hook by using the new Report.add_package() method. (LP: #1485787) * sandboxutils.py, make_sandbox(): Make "Cannot find package which ships Executable/InterpreterPath" fatal, to save some unnecessary package unpack cycles. (LP: #1487174) 2.18 (2015-07-17) ----------------- * Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test to more carefully restore the environment and apt config. * Enable suid_dumpable in the init.d script to also get Apport reports about suid, unreadable, and otherwise protected binaries. These will be "system reports" owned and readable by root only. * init.d script: Fix tab usage inconsistencies. * apport-gtk: Use GtkWidget::valign property instead of GtkMisc::yalign which is deprecated in GTK 3.16. Thanks Iain Lane. * sandboxutils, make_sandbox(): Don't exit with 0 (success) if the ExecutablePath does not exist. (LP: #1462469) * sandboxutils, make_sandbox(): Fix second round of package installs to go into permanent root dir as well. * apt/dpkg install_packages(): If a requested package version is not available from apt in the given archive, try to download it from Launchpad. Thanks to Brian Murray! * kerneloops: Fix crash when determining the version of a custom kernel. Thanks Brian Murray. (LP: #1468154) * apt/dpkg install_packages(): Ignore -dbg packages whose descriptions contain "transitional". (LP: #1469635) * Keep "[origin: ...]" information in Package: and Dependencies: fields for native-origins.d/ origins, so that it's possible to retrace them. Thanks Brian Murray! (LP: #1470572) * Add support for retracing with discovering and enabling foreign Launchpad PPA origins, as specified in reports' Package:/Dependencies: fields. Thanks Brian Murray! * hookutils.attach_wifi(): Shorten value of CRDA if iw isn't available on the system. Thanks Brian Murray. * Fix wrong assertion in crashdb.test_check_duplicate() which surfaces under Python 3.5. (LP: #1474539) 2.17.3 (2015-05-20) ------------------- * SECURITY UPDATE: When /proc/sys/fs/suid_dumpable is enabled, crashing a program that is suid root or not readable for the user would create root-owned core files in the current directory of that program. Creating specially crafted core files in /etc/logrotate.d or similar could then lead to arbitrary code execution with root privileges. Now core files do not get written for these kinds of programs, in accordance with the intention of core(5). Thanks to Sander Bos for discovering this issue! (CVE-2015-1324, LP: #1452239) * SECURITY UPDATE: When writing a core dump file for a crashed packaged program, don't close and reopen the .crash report file but just rewind and re-read it. This prevents the user from modifying the .crash report file while "apport" is running to inject data and creating crafted core dump files. In conjunction with the above vulnerability of writing core dump files to arbitrary directories this could be exploited to gain root privileges. Thanks to Philip Pettersson for discovering this issue! (CVE-2015-1325, LP: #1453900) * apportcheckresume: Fix "occured" typo, thanks Matthew Paul Thomas. (LP: #1448636) * signal_crashes test: Fix test_crash_setuid_* to look at whether suid_dumpable was enabled. * test/run: Run UI tests under dbus-launch, newer GTK versions require this now. 2.17.2 (2015-04-16) ------------------- * SECURITY UPDATE: Disable crash forwarding to containers. The previous fix in 2.17.1 was not sufficient against all attack scenarios. By binding to specially crafted sockes, a normal user program could forge arbitrary entries in /proc/net/unix. We cannot currently rely on a kernel-side solution for this; this feature will be re-enabled once it gets re-done to be secure. (LP: #1444518) * do-release: Force UTC timezone for upstream changelog generation. * apport-kde: Fix crash when showing byte array values. Thanks Jonathan Riddell. (LP: #1443659) * Really create a better duplicate signature for recoverable problems, using ExecutablePath. Thanks Brian Murray. (LP: #1316763) 2.17.1 (2015-04-14) ------------------- * SECURITY UPDATE: Fix root privilege escalation through crash forwarding to containers. Version 2.13 introduced forwarding a crash to a container's apport. By crafting a specific file system structure, entering it as a namespace ("container"), and crashing something in it, a local user could access arbitrary files on the host system with root privileges. Thanks to Stéphane Graber for discovering and fixing this! (CVE-2015-1318, LP: #1438758) * apport-kde tests: Fix imports to make tests work again. * Fix UnicodeDecodeError on parsing non-ASCII environment variables. * apport: use the proper pid when calling apport in another PID namespace. Thanks Brian Murray. (LP: #1300235) 2.17 (2015-03-31) ------------------- * apport-kde: Port to Qt5. Thanks Harald Sitter! * Adjust signal_crashes.test_crash_setuid_{keep,drop} for systemd. * general-hooks/generic.py: Add systemd journal warnings and errors to the new "JournalErrors" field. 2.16.2 (2015-03-02) ------------------- * hookutils.in_session_of_problem(): Check $XDG_SESSION_ID and /run/systemd/sessions instead of the cgroup, as the latter does not work under cgmanager. * ProblemReport: Set a timestamp of 0 in gzip compressed fields; they are meaningless and cause unnecessary jitter in the output. * launchpad backend: Fix unclosed file in upload(). * launchpad backend: Fix wrong use of filter() with Python 3. * launchpad backend download(): Try to convert textual values from byte arrays into into strings. * ui.py, collect_info(): Fix crash on bug pattern checking with broken gzipped values. (LP: #1345653) * hookutils, attach_drm_info(): Avoid UnicodeDecodeErrors in Python 3 when reading binary files. Thanks Chad Miller. (LP: #1425254) * apport-gtk: Update legacy icon names to modern GTK ones, to fix icons under GNOME. Thanks Scott Sanbar. (LP: #1422176) * Move backend_apt_dpkg testsuite to use Ubuntu 14.04 LTS. * hookutils, attach_dmesg(): Only attach dmesg as CurrentDmesg, drop BootDmesg as /var/log/dmesg is upstart specific and thus not reliably correct any more. * hookutils, recent_syslog(): Read system logs from the journal when running under systemd, and fall back to /var/log/syslog if not. * hookutils, attach_mac_events(): Read kernel violation messages from dmesg instead of /var/log/kern.log, as that's specific to rsyslog and its configuration. 2.16.1 (2015-02-10) ------------------- * Set gettext translation domain in setup.cfg, so that tools like dh_translations pick it up and show correct polkit translations. Thanks to Aron Xu! (LP: #1306857) * Report.get_logind_session(): Check $XDG_SESSION_ID and /run/systemd/sessions instead of the cgroup, as the latter does not work under cgmanager. 2.16 (2015-02-06) ----------------- Improvements/behaviour changes: * Add a new method ProblemReport.extract_keys() which writes binary keys (which can be very large) directly to files without loading them all into memory first. Use that in apport-unpack. Thanks Louis Bouchard! (LP: #1307413) * launchpad backend: Work with Python 3, now that launchpadlib exists for Python 3. (LP: #1153671) * apport-bug, apport-gtk: Also check for $WAYLAND_DISPLAY, to use apport-gtk instead of apport-cli under Wayland. Thanks Tim Lunn. (LP: #1418766) * apport-gtk: When running under Wayland, avoid Gdk/Wnck operation for setting crash window modal to the PID of the crashed window; these only work under X11. * Don't install the test suite any more, to save 1 MB of installed space. It can be run out of trunk easily enough, and distributions can install it from tests/ if they desire. Bug fixes: * hookutils, attach_root_command_outputs(): Fix UnicodeDecodeError crash for non-textual values. (LP: #1370259) * ui.py: Only provide a UI to hooks if the crash db will accept the report. This avoids asking questions if the report is merely sent to whoopsie for Ubuntu stable releases. Thanks Brian Murrary. (LP: #1084979) * whoopsie-upload-all: Add package information to the report before calling package hooks. Thanks Brian Murray. * Fix check for available terminal when checking whether to display the "Examine locally" button. 2.15.1 (2014-12-19) ------------------- * Robustify report.test_get_timestamp test. * Robustify signal_crashes.test_limit_size test. * Adjust launchpad crashdb testsuite to work against current Launchpad. * apt/dpkg _search_contents(): Check HTTP last-modified header to avoid re-downloading Contents.gz every day unless it actually changed. Thanks Brian Murray! * apport-gtk: Drop properties which are deprecated in GTK 3.14. 2.15 (2014-12-02) ----------------- * ui.py: Robustify check if apport-retrace is installed. This brings back the "Examine locally" UI option. (LP: #1358734) * recoverable_problem: Handle the parent process going away while we're attempting to read from proc. * apport-retrace: Stop considering a package download error as transient; it can too easily lead to unnoticed eternal retry loops. * whoopsie-upload-all: Refactor to behave more reliably in case of overlapping crash processing. Thanks Steve Langasek and Brian Murray. (LP: #1354318) * whoopsie-upload-all: Remove crash reports that have a core dump which is broken and cannot be processed by gdb. Thanks Brian Murray. (LP: #1376374) * Stop setting $PATH in the init.d script. It breaks assumptions from /lib/lsb/init-functions.d/ which might call other tools which are not in /bin; also, we generally shouldn't meddle with $PATH in individual scripts. (LP: #1372665) * When core size exceeds the limit (3/4 of available memory) and thus the core dump is skipped, log this to /var/log/apport.log. (LP: #1387835) * apport-gtk: Fix jump-to-top on first click of the details treeview. Thanks Marius Gedminas. (LP: #1387328) * apport-retrace: Fix location of cached Contents.gz when using --sandbox-dir. (LP: #1394798) * Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test case with proxy env variables with latest apt. * data/whoopsie-upload-all: confirm that the crash file exists before trying to remove it. (LP: #1384358) 2.14.7 (2014-08-29) ------------------- * Adjust backend_apt_dpkg.test_get_file_package() test: newer util-linux versions do not provide /etc/blkid.tab any more. * Fix interpretation of core dump ulimits: they are in bytes, not kB. (LP: #1346497) * apport-retrace: Don't require specifying an operation; default to updating the given .crash file. (LP: #1361242) * Write report even on UnreportableReasons, so that whoopsie can still upload them. (LP: #1360417) * apt/dpkg install_packages(): Write a "packages.txt" into sandbox root directory to keep track of installed packages and their versions. Prerequisite for LP #1352591. * apt/dpkg install_packages(): Avoid re-downloading/installing packages which are already installed into a permanent sandbox. Prerequisite for LP #1352591. * sandboxutils.py, make_sandbox(): Drop check for already existing files when dynamically resolving libraries and ExecutablePaths; with that, these packages would never get updated in a permanent sandbox. The new version tracking from above now takes care of that. (LP: #1352591) * Fix report.test_add_proc_info test to stop assuming that pid 1 is named "init", as one can specify a different one on the kernel command line. * report.py, add_gdb_info(): Check for truncated core dumps, and set UnreportableReason and raise an IOError on them. Handle this in apport-retrace and whoopsie-upload-all to fail properly instead of silently producing broken Stacktraces. (LP: #1354571) 2.14.6 (2014-08-18) ------------------- * general-hooks/generic.py: Fix hook crash if there are non-distro libraries and no user interface. * collect_info(): Don't assume that reports have a ProblemType. Fixes crashes with apport-collect. (LP: #1325729) * apport-retrace: Declare -s/-g/-o as mutually exclusive, to get proper error messages instead of silent misbehaviour. (LP: #1352450) * apport-gtk: Drop usage of deprecated GTK stock items. (LP: #1348116) 2.14.5 (2014-07-29) ------------------- * apport-bug: Stop checking the autoreport flag and calling whoopsie-upload-all; these two are different tasks, and that breaks bug reporting. (LP: #1339663) * apt/dpkg get_file_package(): If checking for uninstalled packages, don't use package information from the host system, but always look it up in the correct indexes. Otherwise this returns wrong results when files move to a different package between releases. Thanks Brian Murray! (LP: #1336062) * apt/dpkg install_packages(): Disable fetching apt translation indexes, to save some bandwidth. * whoopsie-upload-all: Ignore crash reports with incomplete core dumps instead of crashing on them. Thanks Brian Murray. (LP: #1329520) * etc/default/apport: Fix comment to use "service" instead of calling the init.d script directly. * whoopsie-upload-all: Collect hooks information to gather ApportVersion, NonfreeKernelModules, and SystemImageInfo. Do this before collecting package data to minimize hook run time. (LP: #1349579) * Adjust report.test_get_logind_session test to work with systemd >= 205. * Fix report.test_check_interpreted_twistd test to skip instead of fail if twisted is not installed. 2.14.4 (2014-07-03) ------------------- * Adjust code to match latest pep8 checker. * Report.crash_signature_addresses(): Drop kernel architecture from StacktraceAddressSignature field. It isn't useful there (at most the ELF architecture, but we don't really need that either). This makes it easier to regenerate broken signatures from existing reports on different architectures. (LP: #1336565) 2.14.3 (2014-05-30) ------------------- * Add kernel package version to the various kernel-related hooks. Thanks Brian Murray. (LP: #1316845) * Use package name in duplicate signature for recoverable problems. Thanks Brian Murray. (LP: #1316763) * Have whoopsie-upload-all upload recoverable problems. Thanks Brian Murray. (LP: #1319099) 2.14.2 (2014-04-30) ------------------- * Delay the import of the glob and re modules in the python apport hook, and only import them when needed. Speeds up interpreter startup time by 50%. Thanks Matthias Klose! (LP: #1307684) * Move error handling for invalid .crash files into collect_info(), so that it also applies when using the "Show Details..." button in the UI. Otherwise the UI just hangs eternally at this point when encountering broken core dumps. (LP: #1282349) * apt/dpkg install_packages(): Try to install the requested package version instead of always picking the most recent one. This should improve retracing results for older crash reports. Thanks to Brian Murray for inspiring this. * sandboxutils.py, make_sandbox(): When determining packages to install from ProcMaps, look up and use the package versions from the reporter, to improve retracing results. Thanks Brian Murray for the initial patch! * iwlwifi_error_dump: Make reports private, and subscribe canonical-kernel-team. Thanks Seth Forshee. (LP: #1313818) * signal_crashes test: Time out after 5 seconds if the test process does not terminate on the specified signal, to avoid eternal hangs. * signal_crashes test: Ensure that we don't inherit an ignored SIGQUIT from the caller. 2.14.1 (2014-04-04) ------------------- * Fix FileNotFoundError from temporary launchpadlib cache dir cleanup. (LP: #1300474) * ui.py, open_url(): Skip any Python cleanup/atexit handlers in the forked xdg-open child, to avoid calling them twice. (Side issue of LP #1300474 and #1282713) * apport-kde: Work around crash in sip by skipping the destructors of SIP objects. Thanks Rohan Garg! (LP: #1282713) 2.14 (2014-03-31) ----------------- * Add KernelCrash reports when iwlwifi encounters a firmware error (via the "error_dump" uevent and the new iwlwifi_error_dump helper). Thanks Seth Forshee! * launchpad: Really use a temporary launchpadlib cache dir by default. This avoids piling up gigabytes of useless cached data over time, which also tends to break every now and then. * Fix crash in logind session detection. Thanks Dimitri Ledkov! (LP: #1296026) 2.13.3 (2014-03-07) ------------------- * Fix backend_apt_dpkg.test_get_file_package_uninstalled test that got broken in the previous release. * etc/cron.daily/apport: Cleanup .drkonqi files after 7 days. Thanks Harald Sitter. * ui.py: Try to grab session D-BUS address from user's session when being called through pkexec. (LP: #1287460) 2.13.2 (2014-01-27) ------------------- * Fix crash if systemd cgroup is unreadable in /sys, such as in containers. (LP: #1270783) * apt/dpkg: Also consider Contents.gz from updates/security/proposed pockets, so that e. g. apport-retrace works for crash reports with files that are new in those. Thanks to Brian Murray for the initial patch. (LP: #1271258) * Only drop internal/private keys (starting with '_') from uploading to the crash DB and from the UI report views, but not already when updating the report. (LP: #1272505) * data/apport: Fix stdout/stderr initialization of the error log, don't close the original fd after dup2'ing as it is usually already fd 1. This makes Apport work with Python 3.4. (LP: #1272355) * Adjust report tests to work with Python 3.4 (LP: #1272355) 2.13.1 (2014-01-10) ------------------- * Fix report.test_get_timestamp test for running in other time zones. * Fix erroneous "gdb-multiarch not installed" warnings in ui tests. * Fix ui.test_run_crash_older_session test for running as root. * Fix ui.test_run_crash_older_session for different file system file orders. 2.13 (2014-01-10) ----------------- Improvements: * whoopsie-upload-all: Add a -t/--timeout option. In CI environments it is undesirable to block on upload for 30 mins, but it's still a reasonable timeout on less well connected devices. * Do not report keys starting with '_' to the crash database. This can be used for keeping private keys in .crash files between crash and report time, or to store data between hooks etc., without cluttering reports. * UI: In "run all pending crashes" mode, skip reports that happened during logout in a desktop (specifically, logind) session; they are uninteresting and confusing to see at the next login. (LP: #1033932) They can still be reported manually with running the .crash file directly, but this sufficiently reduces the need to explicitly flag whether the report concerns a logout crash. (LP: #1067646) * Add support for PID namespaces (Linux containers): Crashes originating from a container on a system running a >= 3.12 kernel will be automatically redirected to apport inside the container, or ignored if apport is not installed in the container. Thanks to Stéphane Graber! Bug fixes: * test_signal_crashes: Clean up unexpected reports after every test, to avoid breaking all subsequent tests. * test_signal_crashes: Stop checking that gdb prints nothing on stderr, as latest gdb 7.6.50 now almost always prints some about missing source files. * setup.py: Make updating of hashbangs work when building without Java, and also apply it on bin/. * Print a warning when trying to retrace a report from a foreign architecture and gdb-multiarch is not installed. (LP: #1239395) * etc/init.d/apport: Don't change core_pattern when running in a container, as this influences the host and other containers, too. (LP: #1267728) 2.12.7 (2013-11-19) ------------------- * Properly fall back to lsb_release if /etc/os-release is invalid. * report.py, add_proc_info(): Add "CurrentDesktop" field with the value of $XDG_CURRENT_DESKTOP, if present. (LP: #1247904) * fileutils.py, get_all_system_reports(): Filter out "guest..." users, they might have a system UID. (LP: #1250679) * apt/dpkg: Don't call dpkg-divert with full path, it moved in Ubuntu 14.04. 2.12.6 (2013-10-25) ------------------- * SECURITY FIX: For setuid programs which drop their privileges after startup, make the report and core dumps owned by root, to avoid possible data disclosure. Also, change core dump files to permissions "0600". Thanks to Martin Carpenter for discovering this! (CVE-2013-1067, LP: #1242435) * sandboxutils.needed_runtime_packages(): Create cache directory for Contents.gz if missing. (LP: #933199) * apt/dpkg: Recognize options in apt sources.list. (LP: #1238620) 2.12.5 (2013-09-27) ------------------- * Report.add_os_info(): Do not overwrite already existing data. (LP: #1226776) * kernel_oops hook: Collect uname at the time of invoking the hook, instead of at data collection time. (LP: #1226776) * Replace fixed size icons with PNGs, which are more efficient and avoid rendering artifacts. (LP: #1231763) 2.12.4 (2013-09-19) ------------------- * Update icons to new design from Vishnoo Charan Reddy, many thanks! (LP: #1079639) 2.12.3 (2013-09-19) ------------------- * ProblemReport.write_mime(): Adjust MIMEText handling to latest Python 3.3 upstream changes which now don't tolerate passing bytes any more. (LP: #1227381) * apport-gtk: Don't use obsolete add_with_viewport() method any more. * Fix ui_present_report_details() "modal_for" keyword for all UI implementations, so that --hanging works for -cli and -kde, too. (LP: #1213790) 2.12.2 (2013-09-17) ------------------- * fileutils.py, get_{new,all}_reports(): Don't consider reports which are readable, but not writable. (LP: #1098844) * test_ui_kde.py: Cleanly skip the test if PyQt/PyKDE are not installed, instead of failing. * crash-digger: Write pid into lock file. Thanks Steve Langasek. * apport-gtk: When loading a Bug report from a file, properly set up for bug reporting mode. (LP: #1226140) * Move "program is not installed any more" check from report loading into data collection, so that crash reports can be moved and reported on machines without that program installed. (LP: #1226030) 2.12.1 (2013-08-19) ------------------- * sandboxutils.py, make_sandbox(): Install packages from Package: and Dependencies: fields also if we have a ProcMaps: field and there are any third-party packages. This fixes retracing crashes that use PPAs (as they don't have Contents.gz). * Robustify "progress bar visible" GTK and KDE UI checks for the faster collection due to dropping lsb_release. * Drop apport-noui in favour of whoopsie-upload-all. We don't want to process hooks when run noninteractively, since they may ask questions or determine a report is not due to a bug in Ubuntu. whoopsie-upload-all skips these hooks. * apport/report.py: Gracefully handle being unable to get the source package for a binary package, as when the latter does not exist in the cache. (LP: #1097773) 2.12 (2013-08-02) ----------------- Improvements: * recoverable_problem: Can take the PID as an argument. * Add data/whoopsie-upload-all: Process all pending crashes and mark them for whoopsie upload, but do not upload them to any other crash database. Wait until whoopsie is done uploading. * Eliminate multiple calls to lsb_release by caching the result. On systems which provide /etc/os-release, use that instead of lsb_release. (LP: #1164742) Bug fixes: * launchpad.py: Show the Python major version in the error message about missing launchpadlib. * ui.py: Check if options for updating and reporting a new bug get used together, and give a proper error message in this case. (LP: #1071905) * apport: Fix "Exectuable" typo, leading to reports not being synced on upstart crashes. Thanks James Hunt. (LP: #1203744) * Rename apport-gtk-mime.desktop to apport-gtk.desktop and drop the old apport-gtk.desktop that wasn't even being installed. With that, the window will be shown as "Report a problem..." instead of "Apport-gtk" in GNOME shell and other DEs. Thanks Jeremy Bicha. (LP: #1207496) * report.py, add_gdb_info(): Fix crash if gdb cannot load the symbol map. (LP: #1171484) * apport-retrace: Fix crash when using --sandbox without --cache. (LP: #1197034) * Fix error message when PID is inaccessible. (LP: #1204718) * doc/data-format.tex: Drop unused "OS" and "OSRelease" fields, replace with "DistroRelease" which is actually being used. (LP: #1018387) 2.11 (2013-07-17) ----------------- Improvements: * data/apport-noui: A noninteractive frontend for automatic error reporting. apport-bug will use this if the /etc/apport/autoreport flag file exists. * hookutils.py, attach_upstart_logs(): Also attach ~/.cache/upstart/application-.log for any *.desktop file shipped by a package. Bug fixes: * hookutils.py, attach_conffiles(): Fix check for inaccessible or modified conffiles. (LP: #1192899) 2.10.2 (2013-05-22) ------------------- Bug fixes: * Resolve symlinks in file references in Python crash signatures. (LP: #1179979) * Fix endless loop of EOFErrors with broken core dumps. (LP: #1168849) * report.py, add_gdb_info(): Fix crash if gdb did not determine an assertion message. (LP: #1171484) * apt/dpkg: Fix get_file_package()'s "release" field to actually mean DistroRelease:, not a distro code name. This now requires a previous call to install_packages() with a configdir, which needs to have a file //codename with the release's code name in it. * sandboxutils.py: Call get_file_package() with the report's release, so that we actually get files from the target release, not the host release. * test_hookutils.py: Don't assume that /etc/motd exists. 2.10.1 (2013-05-14) ------------------- Bug fixes: * Fix ui.test_run_crash_anonymity_escaping test when running as root. * launchpad.py: Fix crash when trying to adjust a distro-only bug task if the bug also already has a distropackage task. * apt/dpkg: When there is no -dbg package, install all -dbg packages of the corresponding source package, and only then fall back to -dbgsym. (LP: #1003234) 2.10 (2013-04-30): ------------------ Improvements: * Support retracing foreign powerpc reports, thanks Steve Langasek. * apport/report.py: Generate a crash signature for suspend/resume failures. * hookutils.py: Add attach_upstart_logs(), thanks Steve Langasek. * hookutils.py, in_session_of_problem(): Port from ConsoleKit to logind. Bug fixes: * hookutils.attach_conffiles(): Fix IOError crash on inaccessible conffiles; mark them as '[inaccessible: ]' instead. (LP: #1154536) * hookutils.in_session_of_problem(): Fix crash when the current locale is invalid. (LP: #1154896) * data/gcc_ice_hook: Fix crash with source files that have non-UTF8 data. (LP: #1045283) * apport/report.py: Handle the case where the user has been removed from the system, but one of its still-running binaries crashes (LP: #1163453). * Fix anonymization of user/GECOS fields with regexp control characters like '+'. (LP: #985049) * Run tests under LC_CTYPE=C and unset LANG as well, to discover assumptions about UTF-8 locales. Fix the two failing tests. * Fix UnicodeDecodeError when apport encounters non-ASCII environment variables. (LP: #1172638) 2.9.2 (2013-03-19): ------------------- Improvements: * report.py, add_package_info(): Add "[origin: unknown]" tag to Package/Dependencies fields for non-distro package whose origin cannot be determined. (LP: #1148116) * Adjust kernel_crashdump to the format kdump-tools produces. Thanks Louis Bouchard. Bug fixes: * Write core dumps on SIGQUIT if ulimit allows. Thanks Graeme Hewson. (LP: #1153662) 2.9.1 (2013-03-07): ------------------- Improvements: * launchpad.py: Add support for filing bugs as private. Document this in doc/crashdb-conf.txt. (LP: #1144647) Bug fixes: * test_signal_crashes.py: Fix test_crash_apport() when being run under LD_PRELOAD. * Fix crash in error() and warning() if there is no sys.stderr. (LP: #1012445) * Fix Turkish translation to add missing keyboard accelerator. (LP: #648750) * fileutils.py, find_package_desktopfile(): Restrict to autostart and application .desktop files. (LP: #1147528) * apt/dpkg get_modified_files(): Fix crash when encountering non-ASCII file names in an ASCII locale. (LP: #1044014) 2.9 (2013-03-01): ----------------- Improvements: * fileutils.py, shared_libraries(): Return a "name → path" dict instead of just a set of names. Thanks Kyle Nitzsche. * sandboxutils.py: Support unpackaged executables, i. e. reports which do not have "Package" and "Dependencies" fields. For those, get required libraries from "ProcMaps". Thanks Kyle Nitzsche. Bug fixes: * Add "com.ubuntu.apport.apport-gtk-root" polkit action for running apport-gtk through pkexec to access system crash reports. Thanks Brian Murray. * ui.py: Check $PKEXEC_UID in addition to $SUDO_UID for opening a browser. * apport/report.py: report if LD_PRELOAD and LD_LIBRARY_PATH are set. Thanks James Hunt. * apport-valgrind: Cleanly exit on keyboard interrupts. Thanks Kyle Nitzsche. * debian.py: Fix "string payload expected" crash when building the report. Thanks Dmitry Shachnev. (Debian #698010) * Move shared_libraries() and links_with_shared_library() from hookutils into fileutils, so that we can use it from apport-valgrind. Thanks to Kyle Nitzsche for the initial patch. * fileutils.shared_libraries(): Filter out virtual "linux-vdso" from result. Thanks Kyle Nitzsche. * apport-valgrind: Fix path to debug symbols in the sandbox. * ui.py, get_desktop_entry(): Fix for Python 2. 2.8 (2013-01-08): ----------------- Improvements: * Factor out sandbox management functions from apport-retrace into apport/sandboxutils.py, so that other programs can re-use the API easily. Thanks to Kyle Nitzsche for the initial work on this. * Generate a crash signature for kernel OOPSes. * Add "apport-valgrind" tool to produce valgrind reports in a temporary sandbox with debug symbols (similar to apport-retrace). Thanks Alex Chiang and Kyle Nitzsche! Bug fixes: * Fix StacktraceAddressSignature generation on ARM. (LP: #1089778) * debian.py: Fix TypeError crash in payload generation. Thanks Ritesh Raj Sarraf. * apport_python_hook.py: Update "ExecutableTimestamp" field when mangling "ExecutablePath". (LP: #1077253) 2.7 (2012-12-10): ----------------- Improvements: * packaging.py, get_file_package(): Add optional "release" and "arch" arguments for getting a file's package for a foreign release or architecture. Implement this for apt/dpkg backend. * packaging.py, install_packages(): Add optional "architecture" argument for creating a sandbox for a foreign architecture. Implement this for apt/dpkg backend. * When a report's architecture does not match the system architecture, try to use gdb-multiarch (if available, as packaged on Debian/Ubuntu), and set architecture and gnutarget accordingly in gdb. This supports x86, x86_64, and ARM for now, so that reports from all these architectures can be retraced on an x86_84 machine. (LP: #1044437) * launchpad.py: Add "architecture" option to process reports for a foreign architecture. * Add exceptions from package hooks to new HookError_ report field, to make them more visible. Until now they were only written to stderr. (LP: #1086309) Bug fixes: * Fix test_find_package_desktopfile test to not consider packages with only one "NoDisplay=true" .desktop file for the "has one desktop file" test. * report.py, mark_ignore(): Use home directory of actual effective user, not of $HOME. Fixes ignore file when using through sudo. * apport-cli: Fix showing of prompt. Thanks Dmitry Shachnev! * fileutils.py, mark_report_upload(): Do not try to remove the .uploaded file, as this is not owned by the user. * backends/packaging-apt-dpkg.py, install_packages(): Set mirror to the one in the sandbox config. * apportcheckresume: Fix crash if state file does not exist. 2.6.3 (2012-11-30): ------------------- * test_signal_crashes.py: Fix incompatibility with Python 3.3. * test_signal_crashes.py: Allow XDG_RUNTIME_DIR environment variable, as it only shows whether or not it is set. (Test regression from 2.6) * debian.py: Only reject reports with useless stack traces if the report actually has a stack trace at all. * debian.py: Fix UTF-8 string handling. Thanks Ritesh Raj Sarraf. * debian.py: Fix crash on broken "Package" fields, as generated by current Debian/Ubuntu dkms package. * data/apport: Call fsync when writing upstart crash reports. * report.py, add_gdb_info(): Handle libnih's assertion messages. (LP: #997359) * apport-gtk, apport-kde: Don't provide an option to restart a crashed application when the crash occurred in a thread (LP: #1033902). * apport-retrace: Disallow option -C without option -S. Thanks Kyle Nitzsche. * fileutils.py, mark_report_upload(): Refresh the .upload stamps if a previous version of the report was already uploaded, but another instance of the problem happened since then. Thanks Brian Murray. (LP: #1084296) * Ignore implausibly low addresses when computing StacktraceAddressSignature. These are usually artifacts from gdb when not having debug symbols, and having too many of them prevents proper client-side duplicate detection and proper bucketing in daisy. (LP: #1084996) * fileutils.py: Ignore .desktop files with NoDisplay=true. (LP: #1048524) 2.6.2 (2012-11-06): ------------------- * problem_report.py: Fix UnicodeDecodeError crash under Python 2 when the report has an unicode field with an unprintable ASCII character < 20. * debian.py: Fix calling of parent accepts() method and return value. Thanks Ritesh Raj Sarraf. * bin/apport-retrace: Fix crash when not using --sandbox mode. * report.py, add_proc_info(): Throw correct exception if the executable path does not exist, to provide a more appropriate error message. (LP: #1065129) * report.py, add_gdb_info(): Check __glib_assert_msg for assertion messages, too. * REThread.py: Fix for Python 3.3. 2.6.1 (2012-10-01): ------------------- * setup.py: Specify "-source 1.5" javac option as well, to avoid build failure with OpenJDK 7. 2.6 (2012-10-01): ----------------- * setup.py: Build java module with "-target 1.5" option, so that you can run it with OpenJDK 6 even if you build with OpenJDK 7. * report.py, add_proc_info(): Show if $XDG_RUNTIME_DIR is set. * Add apport/crashdb_impl/debian.py: Initial crash database implementation for the Debian BTS. Add configuration for it to etc/apport/crashdb.conf. Thanks Ritesh Raj Sarraf! * test_python_crashes.py: Robustify "$PYTHONPATH in ProcEnviron" check. 2.5.3 (2012-09-28): ------------------- * data/apportcheckresume: Open report file in binary mode. (LP: #1040353) * packaging-apt-dpkg.py: When throwing ValueErrors, show the non-existing package name. This makes it easier to debug such crashes. * launchpad.py: Replace characters from tags which are not allowed by Launchpad with '.' (LP: #1029479) * launchpad.py: Temporarily disable filing private bugs in the test suite, to work around the SSLHandshakeError error when downloading private attachments from staging. * hookutils.py, attach_root_command_outputs(): Ignore IOError crash about nonexisting files, which can happen if the user dismisses authorization. (LP: #1051222) * report.py, search_bug_patterns(): Fix bug patterns containing non-ASCII characters. Thanks Brian Murray. * apport_python_hook.py: Capture $PYTHONPATH and $PYTHONHOME environment variables for Python crashes. Thanks Brian Murray. 2.5.2 (2012-09-17): ------------------- * test/run: Ignore root_info_wrapper with pyflakes. * packaging-apt-dpkg.py: Add recommended packages to "Dependencies:" field. (LP: #1014428) * test_hookutils.py, test_in_session_of_problem(): Use year 2038 for a future date instead of 2211, as current Python 3.2 now crashes with an OverflowError on 32 bit machines with later years. * Fix crash on broken .desktop files. (LP: #1039889) * apport-gtk: For console program crashes, say "stopped" instead of "closed". Add a subtitle label with a hint about hanging programs. Thanks Matt Price and Matthew Paul Thomas! * report.py: Fix crash on determination of Python module path when examining a crash of "python -m ...". * apport-kde: Fix crash with undefined QString under Python 3. Thanks Jonathan Riddell! (LP: #1028984) * launchpad.py: Add missing "Pre-release Freeze" status. Thanks Brian Murray! * report.py, _check_bug_pattern(): Fix bug pattern matching against binary values. Thanks Brian Murray for the original patch. (LP: #1016380) 2.5.1 (2012-08-22): ------------------- * data/root_info_wrapper: Turn into a real file, a symlink can cause some packaging problems. 2.5 (2012-08-22): ------------------- Bug fixes: * test_recoverable_problem.py: Fix test for calling test runner with absolute path. * packaging-apt-dpkg.py: Fix crash on writing virtual_mapping.db when running with --sandbox-dir and -S system or giving no --cache. * REThread.py: Fix re-raising of exceptions in Python 3. Thanks Martin Packman! (LP: #1024836) * apport-retrace: Keep compressed CoreDump from .crash files instead of uncompressing them into memory. This dramatically reduces memory usage. (LP: #981155) Improvements: * Add an apport.memdbg() function which prints out current memory usage if APPORT_MEMDEBUG is set. Annotate apport-retrace with it. * hookutils.py: Allow specifying a list of profile names when using attach_mac_events(). Thanks Marc Deslauriers. * hookutils.py, attach_root_command_outputs() and root_command_output(): Drop usage of sudo, kdesudo, and gksu, and replace with pkexec. For attach_root_command_outputs(), use a wrapper and proper .policy file which explains the action and works under every environment; thus attach_root_command_outputs() is preferred over root_command_output() now, as it provides a better user experience. * Package hooks which want to send the report to a different crash database than "default" can now also give the database specification itself in the "CrashDB" field, not just the DB name. With this, packages do not need to ship a separate /etc/apport/crashdb.conf.d/ file. Please see doc/package-hooks.txt for details. (LP: #551330) * report.py, add_hooks_info(): If reporting against a package/program in /opt, also search for package hooks in the corresponding /opt directory. This allows such hooks to define a custom crash database and thus report bugs against their own project instead of against the distribution. (LP: #1020503) 2.4 (2012-07-18): ----------------- Improvements: * apport_python_hook.py: For org.freedesktop.DBus.Error.ServiceUnknown exceptions, add a 'DbusErrorAnalysis' field to the report which points out whether any .service file provides the service it tried to talk to, and whether the processes for those are running. This helps to determine the root cause for such errors (missing dependencies, broken .service files, talking to the wrong bus, etc.) (LP: #1020572) * hookutils.py, attach_alsa(): Use alsa-info.sh when available. Thanks David Henningson. * Add new "RecoverableProblem" report type for problems which the application can handle, but still wishes to notify the user and send a problem report about. As an example, the application may wish to notify the user because handling the error resulted in degraded functionality. The user interface may fail to load items, or the action just performed may not return any data. Applications call /usr/share/apport/recoverable_problem with a string of arbitrary NUL-separated key/value pairs that are added to the report. Thanks Evan Dandrea! Bug fixes: * ui tests, test_wait_for_pid(): Fix eternal hang when running as root. * testsuite: Fix ResourceWarnings when running with Python 3. * test_python_crashes.py: Fix race condition in timeout test. * launchpad.py: Fix setting of 'Medium' importance on duplicate checking. * apport-retrace: Fix StacktraceSource generation for relative --cache paths. * crashdb.py, check_duplicate(): Do not try to mark a bug as duplicate of itself. This can happen when re-processing a previously retraced bug. * apport-retrace: Fix UnicodeDecodeError when encountering a non-ASCII source code file and running under a non-UTF-8 locale. 2.3 (2012-07-09): ----------------- Improvements: * launchpad.py: Rework test suite to not use Launchpad's +storeblob facility at all any more. It almost never works on staging and is horribly slow. Fake the bug creation from a blob by manually creating the comment and attachments ourselves, and just assume that storeblob works on production. Also change the structure to allow running every test individually. * crash-digger: Add --crash-db option to specify a non-default crash databae name. (LP: #1003506) * apport-gtk: Add --hanging option to specify the process ID of a hanging application. If the user chooses to report this error, apport will terminate the pid with SIGABRT, otherwise it will send SIGKILL. The normal core pipe handler will be used to process the resulting report file, with a .hanging file in /var/crash to separate these from regular crashes. Bug fixes: * apport: Also treat a binary as modified if the /proc/pid/exe symlink does not point to an existing file any more. (LP: #984944) * Fix PEP-8 violations picked up by latest pep8 checker. * ui.py: Do not ignore certain exceptions during upload which are not likely to be a network error. * launchpad.py: Recongize Launchpad projects for bug query and marking operations. (LP: #1003506) * packaging-apt-dpkg.py: Fix get_source_tree() to work with apt sandboxes. * apport-retrace: Turn StacktraceSource generation back on, now that it works with the current sandboxing. * launchpad.py: Ensure that upload chunk size does not underrun. (LP: #1013334) * apport_python_hook: Fix UnicodeEncodeError crash with Python 2 for exceptions with non-ASCII characters. (LP: #972436) * test_ui_kde.py: Fix occasional test failure in test_1_crash_details if the application ends before the "is progress bar visible" check is done. 2.2.5 (2012-06-21): ------------------- * launchpad.py: Fix str vs. bytes crash for already known bugs, take 2. (LP: #1015788) * apport/ui.py, get_desktop_entry(): Disable interpolation, to correctly read desktop files with % signs. (LP: #1014341) * apport/ui.py: Fix rare crash if a report is already being updated in the background when the UI tries to update a previous version. (LP: #949196) * GTK and KDE UI tests: Avoid eternal hangs due to "this is not a distro package" error messages. 2.2.4 (2012-06-21): -------------------- Bug fixes: * test_apport_unpack.py: Fix test_unpack_python() test when running the system-installed tests. * data/java_uncaught_exception: Fix for Python 3. * test_signal_crashes.py: Show crash reports in /var/crash/. * test_crash_digger.py: Do not write crash reports of crash-digger into system /var/crash, use a temporary directory. * test/run: Wait for a previous xvfb server to finish before trying to start one. This fixes a race condition in the KDE UI tests which often failed to start up xvfb. * apport-cli: Unbreak "keep" option. (LP: #1007826) * launchpad.py: Fix str vs. bytes crash for already known bugs. (LP: #1015788) 2.2.3 (2012-06-15): ------------------- Bug fixes: * test/run: Do not run pep8 and pyflakes when running against the sytem installed Apport. * test_backend_apt_dpkg.py: For the "are we online" check, verify that we can download from http://ddebs.ubuntu.com/, not just whether we have a default route. The latter is not sufficient for e. g. buildd environments which are online, but are restricted by proxies or firewalls. * test_report.py: Call "sync" after test script write core dumps, to ensure that subsequent operations have a complete one. * test_signal_crashes.py: Drop the broken and obsolete test_local_python() test. Instead, add two tests which check proper logging. * launchpad.py: Fix urlopen() for Python3. Thanks Steve Langasek. * test/run: Run the tests under LC_MESSAGES=C, to avoid failing tests on translated strings. 2.2.2 (2012-06-13): ------------------- Improvements: * testsuite: Run with Python 3 by default. To test with Python 2, run "PYTHON=python2 test/run". Bug fixes: * apport: Redefine sys.std{out,err} when redirecting output, as they are None in Python 3 when being called from the kernel. * test/test_signal_crashes.py: Clean up unexpected core dumps on failed test cases. * apport-gtk: Fix crash when closing the crash dialog while the information is being collected. * hookutils.py, xsession_errors(): Fix crash when running under a non-UTF8 locale. * data/apport: Do not use sys.stdin.fileno(), it is invalid when being called from the kernel with Python 3. * data/apport: When core dumps are enabled, read them from the written report instead of directly from stdin (and then reading the written core file into the .crash report). If the core file size is limited, we otherwise stop reading the core dump from the kernel in the middle and have no (or a broken) core dump to be put into the report. * data/apport: Properly close the written crash report before changing its permissions to be readable. This prevents having crash reporting UI from looking at incomplete .crash files. 2.2.1 (2012-06-11) ------------------ Bug fixes: * apport-cli: Port to work with Python 3. * setup.py: When fixing hashbang lines of installed scripts, only include the major Python version. * hookutils.py, read_file, attach_file(), attach_file_if_exists(): Convert file contents to unicode if the contents is UTF-8, or the newly added force_unicode argument is True. * hooktuils, command_output(): Convert output to unicode by default, and add a "decode_utf8" parameter to disable this. * hookutils.py, recent_logfile(): Fix fd leak. * data/apport: Do not assume that sys.stdout and sys.stderr always have a name; they can be None in Python 3. * data/dump_acpi_tables.py: Fix for Python 3. 2.2 (2012-06-11) ---------------- Improvements: * Clean up module imports. * test/run: Run pyflakes, if available. * package_hook: Add --tags option. Thanks to Brian Murray. * launchpad.py: Drop the external multipartpost_handler.py (which is not portable to Python 3) and replace it with using the standard email module. * launchpad.py: Also work with Python 3. Deal gracefully with a missing "launchpadlib" module; this is not yet available for Python 3, but not required for client-side reporting. * apport-kde: Port to work with Python 3. Bug fixes: * apport-retrace: Fix crash when using the --procmaps option. * setup.py: Update hashbang lines of installed scripts in data directory to the python executable setup.py was run with, similar to what already happens to scripts installed to ../bin/. 2.1.1 (2012-05-30) ------------------ Improvements: * launchpad.py: When closing a bug as a duplicate, copy some well-known tags to the master bug. Thanks Brian Murray. * launchpad.py: Set importance of Python crash reports to "Medium" by default, similar to signal crashes. Thanks Brian Murray. * hookutils.py: Add attach_default_grub() convenience function from the grub2 package hook so it can be used by other packages. Thanks Brian Murray. * launchpad.py: Make Launchpad bug subscription user/team configurable: The initial subscriber after filing a bug can be set with the "initial_subscriber" crashdb option, and the team which gets subscribed after retracing with "triaging_team". (LP: #980726) Bug fixes: * report.py: Do not change the SourcePackage: field if the binary package is not installed and does not exist. This fixes source package hooks to actually work in some cases where source and binary package names overlap. (part of LP: #993810) * apport-gtk, apport-kde: Avoid collecting information twice in "bug update" mode. This caused a crash in cases where the source package in a bug report does not correspond to an installed binary package. (LP: #993810) 2.1 (2012-05-18) ---------------- Improvements: * packaging.py, install_packages(): Add permanent_rootdir flag and if set, only unpack newly downloaded packages. Implement it for the apt/dpkg backend. Thanks Evan Dandrea. * apport-retrace: Add --sandbox-dir option for keeping a permanent sandbox (unpacked packages). This provides a considerable speedup. Thanks Evan Dandrea. * crash-digger: Add --sandbox-dir option and pass it to apport-retrace. * Fix the whole code to be PEP-8 compatible, and enforce this in test/run by running the "pep8" tool. * GTK UI tests: Ensure that there are no GLib/GTK warnings or criticals. * Support Python 3. Everything except the launchpad crashdb backend now works with both Python 2 and 3. An important change is that the load(), write(), and write_mime() methods of a ProblemReport and apport.Report object now require the file stream to be opened in binary mode. * data/apport: Ignore a crash if the executable was modified after the process started. This often happens if the package is upgraded and a long-running process is not stopped before. (LP: #984944) * Add test cases for apport-unpack. * apport-retrace: Add information about outdated packages to the "RetraceOutdatedPackages" field. * ui.py: Drop python-xdg dependency, use ConfigParser to read the .desktop files. Bug fixes: * apport-gtk: Work around GTK crash when trying to set pixmap on an already destroyed parent window. (LP: #938090) * data/dump_acpi_tables.py: Fix crash on undefined variable with non-standard tables. (LP: #982267) * backends/packaging-apt-dpkg.py: Fix crash if a package is installed, but has no candidates in apt. (LP: #980094) * data/general-hooks/generic.py: Bump minimum free space requirement from 10 to 50 MB. 10 is not nearly enough particularly for /tmp. (LP: #979928) * hookutils.py, recent_logfile(): Use a default limit of 10000 lines and call "tail" instead of reading the whole file. This protects against using up all memory when there are massive repeated log messages. (LP: #984256) * apport-gtk: Do not assume that an icon requested for size 42 actually delivers size 42; some themes do not have this available and deliver a smaller one instead, causing overflows. Also, copy the image as gtk_icon_theme_load_icon() returns a readonly result which we must not modify. (LP: #937249) * ui.py: Don't show the duplicate warning when the crash database does not accept the problem type, and they are just being sent to whoopsie. Thanks Evan Dandrea. (LP: #989779) * report.py: Correctly escape the file path passed to gdb. * apport-gtk, apport-kde: Do not show the information collection progress dialog if the crash database does not accept this kind of report. In that case whoopsie will upload it in the background and the dialog is not necessary. (LP: #989698) 2.0.1 (2012-04-10) ------------------ Bug fixes: * test_ui_gtk.py: Disable package hooks for the tests, as they might ask for sudo passwords and other interactive bits, and thus make the tests hang. * test_backend_apt_dpkg.py: Fix checks for the installation of -dbgsym packages. This should always happen, as the sandboxes have a ddeb apt source. Only make it conditional on the system apt sources in the "use system config" test. * test_report.py: Sleep a bit after calling our test crash script, to ensure the kernel has time to finish writing the core file. * generic package hook: Also check /tmp for enough space. Thanks Brian Murray. (LP: #972933) * problem_report.py, write_mime(): Fix regression from version 1.95: Add a value as attachment if it is bigger than 1000 bytes, not if it is bigger than 100. (LP: #977882) Improvements: * packaging-apt-dpkg.py: Avoid constructing and updating the apt.Cache() objects multiple times, to speed up retracing. Thanks Evan Dandrea. (LP: #973494) 2.0 (2012-03-30) ---------------- This is the final 2.0 release, featuring the overhauled and simplified GUI, support for whoopsie-daemon, and client-side duplicate checking. Bug fixes: - report.py, anonymize(): Only replace whole words, not substrings. (LP: #966562) - apport_python_hook.py: Fix filtering of org.freedesktop.DBus.Error.NoReply exceptions. (LP: #958575) - crashdb.py: When publishing the crash database, cut hash file names after quoting, to avoid that the quoting causes them to become too long. (LP: #968070) This also uncovered that known() did not actually find any signature which contained an URL-quoted character, therefore breaking client-side duplicate checking in a lot of cases. Double-quote the file name now, as urlopen() unquotes it. - Add a new crash database option "problem_types" and a CrashDatabase method "accepts(report)". This can be used to stop uploading particular problem report types to that database. E. g. a distribution might decide to not get "Crash" reports any more after release. Document the new option in doc/crashdb-conf.txt. - ui.py: Do not upload a report if the crash database does not accept the report's type. This behaviour is not really correct, but necessary as long as we only support a single crashdb and have whoopsie hardcoded. Once we have multiple crash dbs, we need to not even present the data if none of the DBs wants the report. See LP #957177 for details. (LP: #968121) - ui.py: Do not short-circuit information collection if report already has a "DistroRelease" field, as the GUIs add that in some cases. Check for "Dependencies" instead. This fixes information collection for kernel problems (which now has a full GTK GUI test case). (LP: #968488) 1.95 (2012-03-22) ----------------- Bug fixes: - ui.py: Ensure that the report file is readable by the crash reporting daemon after running through collect_info(). Thanks Evan Dandrea. - apport-gtk, apport-kde: Set the window title to the distribution name, as per http://wiki.ubuntu.com/ErrorTracker#error . Thanks Evan Dandrea. (LP: #948015) - test/run: Ignore obsolete packages on the system, to avoid breaking the GUI tests due to them. - apport-gtk, apport-kde: When reporting a "system crash", don't say "... of this program version", but "...of this type", as we don't show a program version in the initial dialog (https://wiki.ubuntu.com/ErrorTracker#error) (LP: #961065) - problem_report.py, write_mime(): Do not put a key inline if it is bigger than 1 kB, to guard against very long lines. (LP: #957326) - etc/cron.daily/apport: Do not remove whoopsie's *.upload* stamps every day, only if they are older than a week. whoopsie comes with its own cron job which deals with them. Thanks Steve Langasek. (LP: #957102) - report.py, mark_ignore(): Fix crash if executable went away underneath us. (LP: #961410) - apport-gtk: Do not compare current continue button label against a translated string. Instead just remember whether or not we can restart the application. (LP: #960439) - hookutils.py, command_output(): Add option to keep the locale instead of disabling it. - hookutils.py, command_output(): Actually make the "input" parameter work, instead of causing an eternal hang. Add tests for all possible modes of operation. - hooktuils.py: Change root_command_output() and attach_root_command_outputs() to disable translated messages (LC_MESSAGES=C) only as part of the command to be run, not already for the root prefix command. This will keep the latter (gksu, kdesudo, etc.) translated. (LP: #961659) - apport-gtk: Cut off text values after 4000 characters, as Gtk's TreeView does not get along well with huge values. KDE's copes fine, so continue to display the complete value there. (LP: #957062) - apport-gtk: Make details window resizable in bug reporting mode. - crashdb.py, known(): Check the address signature duplicate database if the symbolic signature exists, but did not find any result. (LP: #103083) - ui.py: Run anonymization after checking for duplicates, to prevent host or user names which look like hex numbers to corrupt the stack trace. (LP: #953104) - apport-gtk: Require an application to both have TERM and SHELL in its environment to consider it a command line application that was started by the user. (LP: #962130) - backends/packaging-apt-dpkg.py, _check_files_md5(): Fix double encoding, which caused UnicodeDecodeErrors on non-ASCII characters in an md5sum file. (LP: #953682) - apport-kde, apport-gtk: Only show "Relaunch" if the report has a ProcCmdline, otherwise we cannot restart it. (LP: #956173) Improvements: - hookutils.py, attach_alsa(): Add the full "pacmd list" output instead of just sinks and sources. Thanks David Henningsson. - apport-gtk, apport-kde: Show the ExecutablePath while we're collecting data for the crash report. Thanks Evan Dandrea. (LP: #938707). 1.94.1 (2012-03-07) ------------------- Bug fixes: - test_ui_kde.py: Re-enable inadvertently disabled "bug report for uninstalled package" test. - ui.py, collect_info(): Do not assume that reports have a "ProblemType" field. This is not the case when updating a bug. (LP: #947519) - apport-cli: Consistently handle unicode vs. byte arrays. (LP: #946207) - report.py, anonymize(): Fix crash when the hostname or user name contain non-ASCII characters. (LP: #945230) - packaging-apt-dpkg.py: Fix UnicodeDecodeError on unexpected md5sum output. (LP: #921037) - apport-gtk: Fix handling of non-ASCII strings in message dialogs. (LP: #865394) 1.94 (2012-03-02) ----------------- Bug fixes: - apport: Set the group of written reports to "whoopsie" if that group exists. - Fix tests to run properly against the system-installed modules and binaries. - test/run: Run under LC_MESSAGES=C to avoid test failures due to translated strings. - general-hooks/generic.py: Also attach xsession-errors for programs that link to libgtk-3. - launchpad.py: Properly handle "Expired" status, to avoid marking new bugs as duplicates of expired ones. (LP: #941854) - apport: Fix crash if the "whoopsie" group does not exist. (LP: #942326) - report.py, crash_signature(): Do not put "" frames into Python crash signatures that happen outside of function/method calls. Fall back to the file/line number as a frame description instead. This will do a much better job at disambiguating e. g. different ImportError crashes. (LP: #920403) - Make "binary changed since the time of the crash" error message more comprehensible, thanks Paolo Rotolo. (LP: #942830) - crashdb.py, check_duplicate(): It can happen that a bug gets identified as being a duplicate of bug S by symbolic signatures and a duplicate of bug A by address signatures. Empirical evidence shows that this is due to the unavoidable jitter in stack traces (A and S not being identified as duplicates as their signatures differ slightly) and not a logic error. So instead of erroring out, duplicate all three bugs and keep the lowest number as the master ID. (LP: #943117) - Revert the usage of multiple nested threads during data collection, and switch back to only using one UI thread. The UI implementations can, and now do, decide between showing a spinner and showing a progress dialog in the ui_*_info_collection_progress() methods. This fixes libX11 crashes when multiple UI threads do changes concurrently (LP: #901675), and also avoids multi-thread induced crashes in Pango (LP: #943661). The removal of the collect() method also fixes the new crashes in it. (LP: #942098, #939803) - ui.py, get_desktop_entry(): Fix crash on uninstalled package. (LP: #940984) - data/unkillable_shutdown: Fix crash on race condition when PID goes away while the report is created. (LP: #546369) - apport/hookutils.py, pci_devices(): Fix crash on unexpected lines from lspci. (LP: #904489) - Drop hardcoded "Ubuntu" words again which crept in with the whoopsie support merge. Use the DistroRelease: field. - apport-kde: Fix Home page URL in KApplication metadata. - apport-gtk: Fix resizability and size after hiding details. (LP: #405418) Improvements: - test/run: Drop "local" argument. This now tests against the source tree when run in the source tree root, and against the system libraries/programs when run from anywhere else. - test/run: Consider command line arguments as test names and only run those when given. Also support just running a single test. - testsuite: Force the skipping of online tests when $SKIP_ONLINE_TESTS is set. - hookutils.py, xsession_errors(): Add a reasonable default pattern which matches glib-style warnings, errors, criticals etc. and X window errors. In data/general-hooks/generic.py, call it with that default instead of the rather incomplete custom pattern. (LP: #932660) - packaging.py: Add get_package_origin() method, and implement it for apt-dpkg. - report.py, add_package_info(): Add "[origin: ...]" tag to "Package" and "Dependencies" fields for any package which is not native to the distribution. If any such package is present, tag the report with "third-party-packages" in data/general-hooks/generic.py. (LP: #927912) - apport/packaging.py: Add get_uninstalled_package() method as a helper method for the test suite. Use it instead of a hardcoded Debian/Ubuntu specific name in test/test_hooks.py. - test/test_ui_{gtk,kde}.py: Add test cases for complete UI workflow runs for reporting a bug against an installed/uninstalled package, and reporting a crash with and without showing details. This reproduces the recent crashes like LP #901675 or LP #943661. - test_ui.py: Add a test case for reporting a complete report on uninstalled package. This happens when reporting a problem from a different machine through copying a .crash file. - test/run: Add a test that there are no hardcoded "Ubuntu" words in the source. The code should use the DistroRelease: field or lsb_release. 1.93 (2012-02-23): ------------------ Bug fixes: - apport-gtk: Fix crash on nonexisting icon. Thanks Evan Dandrea. (LP: #937354) - ui.py, open_url(): Revert back to calling sudo instead of dropping privileges ourselves; with the latter, calling firefox as the sudo'ing user fails. (LP: #916810, #938128) - ui.py: Fix aborting with "AssertionError" if the report is already known, but without an URL. (LP: #938778) - launchpad.py: If a bug is already known, but the report is private, do not send the report. There is little sense piling up lots of duplicates. (LP: #938700) - test/crash: Fix regression of test_crash_apport(), consider $TERM a non-sensitive variable. - ui.py: Fix test failures for data collection progress, they are not expected to happen for "ProblemType: Crash" any more (happens in the background during sending, or if user clicks on "Show Details"). - test/hooks: Use a package from Debian/Ubuntu main, so that this works better during package builds on build servers. - test/python: Do not assume that /var/crash/ exists. Use /var/tmp/ for the fake binaries instead. - data/general-hooks/parse_segv.py: Fix test case name. - ui.py: Fix crash on invalid core dumps. (LP: #937215) - launchpad.py: Fix crash on unicode report titles. (LP: #896626) Improvements: - apport-gtk: Show the most interesting fields first in the details view. - do-release: Call pyflakes and abort on errors other than unused imports. - Move all test suites out of the code modules into test/test_.py. This avoids having to load it every time the program runs, and also allows running the tests against the installed version of Apport. - Clean up the other executable test script in test/* and change them to the same structure as the module tests. 1.92 (2012-02-20): ------------------ Bug fixes: - ui.py: Fix wrong creation of "~" folder instead of expanding it to home directory when using "Examine locally". Thanks Jason Conti! (LP: #909149) - Replace file() calls with open() for Python 3 compatibility. Thanks Colin Watson! - launchpad.py: Avoid sending tag names with upper case. (LP: #924181) - report.py, crash_signature_addresses(): Fix crash if report does not have "Signal". - apport-gtk: Fix resize handling of expander in details window. Thanks Thomas Bechtold! (LP: #930562) - Clean up unnecessary imports. Thanks Evan Dandrea! Improvements: - man/apport-bug.1: Mention where crash files are stored. Thanks David Kastrup. - hookutils.py, attach_hardware(): Sort ProcModules, thanks Brian Murray. - launchpad.py: Keep "Dependencies" attachment in duplicates. Thanks Brian Murray. - Reorganize the GNOME and KDE user interface to do the crash notifications and detail browser in a single dialog. Add test/gtk and test/kde tests to check expected dialog layout for different cases. Thanks Evan Dandrea! - Add support for the whoopsie-daisy crash reporting daemon by creating zero-byte .upload file stamps for crash reports. Thanks Evan Dandrea! 1.91 (2012-01-18): ------------------ Bug fixes: - crashdb.py, check_duplicate(): If a crash has a signature but no existing duplicate in the DB, also check for an existing address signature duplicate in the DB. - apport-retrace: Use DistroRelease specific subdirectory of the cache dir for mapping a file to a package, as these maps are release specific. - packaging-apt-dpkg.py: Refresh Contents.gz cache if it is older than one day. - crashdb.py: Ensure that address_signature duplicate db table does not have multiple identical signatures by making it a primary key. Bump the db format to "3". Existing databases need to be migrated manually as SQLite does not allow adding a "PRIMARY KEY" constraint to existing tables. - crashdb.py: Do not add a new address signature entry if one already exists. - apport-cli: Fix UnicodeDecodeError on unicode report values. (LP: #275972) - launchpad.py: Only set bug task importance if it is undecided. - apport-retrace: Fix "an useful" typo. (LP: #911437) - report.py: Filter out frames which are internal kernel/glibc implementation details and not stable across duplicates. In particular, filter out __kernel-syscall() and the SSE stubs. - crashdb.py: Remove debugging leftover which completely disabled bug pattern checking. - report.py: Update reading AssertionMessage. Current (e)glibc turned __abort_msg from a simple static string into a struct. Improvements: - Change permissions of .crash files from 0600 to 0640, so that /var/crash can be made g+s and crash handling daemons can access those. - Python exceptions: Blacklist DBus.Error.NoReply. It does not help to get these traces from the client-side application, you need the actual exception in the D-Bus server backend instead. (LP: #914220) - Support /etc/apport/whitelist.d/ similarly to /etc/apport/blacklist.d/, for cases like installer environments where only crashes of a few selected programs should be reported. 1.90 (2011-11-24): ------------------ First beta release of 2.0 which introduces client-side duplicate checking. Bug fixes: - backends/packaging-apt-dpkg.py: Fix another test case failure when ddeb repository is not enabled. - backends/packaging-apt-dpkg.py: Fix handling of explicit cache directory name when it is a relative path. - launchpad.py: Only query for bugs after 2011-08-01, to avoid timeouts. - ui.py: Also anonymize standard bug title. (LP: #893863) - launchpad.py: Current Launchpad cannot have private bugs which affect multiple projects. Fix test suite accordingly. Improvements: - report.py: Break out new method stacktrace_top_function() from standard_title(), so that other parts of the code can use this as well. - launchpad.net: When sending retraced results back to the bug report, update the topmost function in the bug title. (LP: #869970) - report.py, add_gdb_info(): Add a new field "StacktraceAddressSignature" which is a heuristic signature for signal crashes. This should be used if crash_signature() fails, i. e. the Stacktrace field does not have enough symbols. This can be used to check for duplicates on the client side, provided that the crash database server supports querying for these. Do not expose this field when uploading to crash databases though, as it can be recomputed from the already existing information (ProcMaps and Stacktrace) and thus would just clutter the reports. - crashdb.py: Add a table "version" with the database format version. Add automatic upgrading to the most current format. - crashdb.py: Put address signatures from reports checked with check_duplicate() into the duplicate database, so that implementations of known() can check for these. - dupdb-admin: Add "publish" dupdb-admin command which exports the duplicate database into a set of text files suitable for WWW publishing. - crashdb.py: Add new method "known(report)" which can be implemented to check if the crash db already knows about the crash signature. If so, the report will not be uploaded, and instead the user will be directed to the existing report URL (if available), similar to bug patterns. The default implementation checks this format, if the crash database is initialized with a "dupdb_url" option pointing to the exported database. - launchpad.py: Override known() to check if the master bug is actually accessible by the reporter, and is not tagged with "apport-failed-retrace" or "apport-request-retrace"; otherwise file it anyway. - crash-digger: Add --publish-db option to conveniently integrate duplicate DB publication (similar to dupdb-admin publish) into retracer setups. - launchpad.py: Attach updated stack traces from a duplicate to the master bug if it failed retracing previously or has an "apport-request-retrace" tag. (LP: #869982) - apport-kde, apport-gtk: Support the "Annotation" field for custom dialog titles for "Crash" and "Package" problem types as well, not just for "Kernel". (LP: #664378) 1.26 (2011-11-11): ------------------ Bug fixes: - backends/packaging-apt-dpkg.py: Port to current python-apt API. - hookutils.py: Fix path_to_key() to also work with unicode arguments. - test/crash: Exit successfully if apport is not enabled in the system. This allows packages to run the test suite during build. - report.py, add_proc_info(): Correctly handle "python -m " programs as being interpreted and determine the appropriate module path. - Fix some import statements to also work for the system-installed test suite. - test/run: Fix testing data/general-hooks/parse_segv.py when called in system-installed mode. - apport/ui.py: Clean up test .crash file after test cases. - Fix tests when running as root. - setup.py: Fix crash when "javac -version" fails. - README: Update command for one-time enablement. - backends/packaging-apt-dpkg.py: Fix interleaving usage of install_packages() with other operations such as get_version(), by resetting the apt status after building and using the sandbox. - report.py test suite: Remove requirement that $USER is set, which makes it easier to run this from package build environments. - apport/ui.py, test/crash: Use "yes" as test process instead of "cat". The former is less likely to run already, and does not depend on having a stdin, so it runs better in test environments like autopkgtest. - backends/packaging-apt-dpkg.py: Fix tests if system does not have a dbgsym apt source. Improvements: - Ignore a crash if gnome-session is running and says that the session is being shut down. These often die because X.org or other services are going away, are usually harmless, and just cause a lot of clutter in bug trackers. (LP: #460932) - test/crash: Rewrite using Python's unittest, to be in line with other tests, and be easier to maintain and extend. 1.25 (2011-11-02): ------------------ Improvements: - Add new response "Examine locally" to presenting the report details, which runs apport-retrace in the chosen mode in a terminal. This should be made available for crash reports if apport-retrace and a Terminal application are installed; add an abstrace UI method for this. (LP: #75901) - apport-gtk: Add "Examine locally..." button, and implement ui_run_terminal(). - apport-cli: Add "Examine locally..." responses, and implement ui_run_terminal(). - apport-cli: Greatly speed up displaying large reports. This also changes the format to avoid indenting each line with a space, and visually set apart the keys in a better way. - apport_python_hook.py: Move tests out of this file into test/python, to avoid having to parse the unit tests at each Python startup. - test/python: Also make tests work if Python hook is not installed in system's sitecustomize.py. - packaging.py: Add get_modified_conffiles() API, and implement it in packaging-apt-dpkg.py. - hookutils.py: Add attach_conffiles(). - hookutils.py: Add attach_upstart_overrides(). Bug fixes: - launchpad.py: Remove "Ubuntu" in bug response, replace with "this software". (LP: #883234) - apport-kde: Rearrange order of imports to get intended error message if PyKDE is not installed. - packaging-apt-dpkg.py: Ignore hardening-wrapper diversions, to make gcc_ice_hook work if hardening-wrapper is installed. - apport_python_hook: Respect $APPORT_REPORT_DIR. - apport_python_hook: Limit successive crashes per program and user to 3 per day, just like signal crashes. (LP: #603503) - packaging-apt-dpkg.py: Skip online tests when there is no default route. - ui.py: Fix test suite to not fail if system has some obsolete or non-distro packages. 1.24 (2011-10-19): ------------------ Bug fixes: - backends/packaging-apt-dpkg.py, install_packages(): Also copy apt/sources.list.d/ into sandbox. - backends/packaging-apt-dpkg.py, install_packages(): Install apt keyrings from config dir or from system into sandbox. (LP: #856216) - packaging.py, backends/packaging-apt-dpkg.py: Define that install_packages() should return a SystemError for broken configs/unreachable servers etc., and fix the apt/dpkg implementation accordingly. - apport-retrace: Don't crash, just give a proper error message if servers are unreachable, or configuration files are broken. (LP: #859248) - backends/packaging-apt-dpkg.py: Fix crash when /etc/apport/native-origins.d contains any files. (LP: #865199) - hookutils, recent_logfile(): Fix invalid return value if log file is not readable. (LP: #819357) - test/crash: Fix race condition in the "second instance terminates immediately" check. - hookutils.py: Replace attach_gconf() with a no-op stub. It used static python modules like "gconf" which broke the PyGI GTK user interface, and gconf is rather obsolete these days. - ui.py, open_url(): Greatly simply and robustify by just using xdg-open. This already does the right thing wrt. reading the default browser from GNOME, KDE, XCE, and other desktops. (LP: #198449) - data/general-hooks/generic.py: Only attach ~/.xsession_errors if the bug is reported in the same XDG session as the crash happened. (LP: #869974) - Ignore crashes for programs which got updated in between the crash and reporting. (LP: #132904) - Special-case crashes of 'twistd': Try to determine the client program and assign the report to that, or fail with an UnreportableReason. (LP: #755025) - apport-gtk: In bug update mode, make details dialog resizable and fix default size. (LP: #865754) - apport-gtk: Fix crash if report does not have ProcCmdline. (LP: #854452) - hookutils.py, attach_wifi(): Anonymize ESSID and AP MAC from "iwconfig" output. (LP: #746900) - test/crash: Fix test failure if user is not in any system groups. - test/crash: Change to /tmp/ for test crash process, to fix failure if the user that runs the test suite cannot write into the current directory. (LP: #868695) - ui.py: Improve error message if package is not a genuine distro package. Thanks to Ronan Jouchet. (LP: #559345) Improvements: - apport-retrace: Add --timestamp option to prepend a timestamp to log messages. This is useful for batch operations. - crash-digger: Call apport-retrace with --timestamps, to get consistent timestamps in log output. - hookutils.py: Add two new functions attach_gsettings_package() and attach_gsettings_schema() for adding user-modified gsettings keys to a report. (LP: #836489) - hookutils.py: Add new function in_session_of_problem() which returns whether the given report happened in the currently running XDG session. This can be used to determine if e. g. ~/.xsession-errors is relevant and should be attached. 1.23.1 (2011-09-29) ------------------- Bug fixes: - apport/crashdb.py: Ensure that duplicate table only has one entry per report ID. - apport-retrace: Pass correct executable path to gdb in --gdb with --sandbox mode. - apport-retrace: Do not leave behind temporary directories on errors. - apport-retrace: Drop assertion failure for existance of "Stacktrace". This isn't present in the case of gdb crashing, and there is not much we can do about it. This should not break the retracer. - apport/report.py: Unwind XError() from stack traces for the "StacktraceTop" field, as they take a significant part of the trace. This causes bugs to be duplicated which really have different causes. 1.23 (2011-09-14) ----------------- Improvements: - crashdb.py, crash-digger, dupdb-admin: Drop the concept of "duplicate DB consolidation". Such massive queries cause timeouts with e. g. Launchpad. Instead, update the status of potential master bugs in the crash DB whenever check_duplicate() is called. Bug fixes: - launchpad.py: Fix crash in close_duplicate() if master bug was already marked as a duplicate of the examined bug. - problem_report.py, load(): Fix missing last character if the last line in a multi-line field is not terminated with a newline. - launchpad.py: Fix test_marking_python_task_mangle() check to work with current Launchpad. - apport-retrace: If the user did not specify a --cache directory, create a shared one instead of letting the two install_packages() calls create their own. This ensures that the apt and dpkg status is up to date, and avoids downloading the package indexes multiple times. (LP: #847951) - apport-retrace: Give proper error mesage instead of AssertionError crash if a report does not contain standard Apport format data. (LP: #843221) - fileutils.py, get_new_reports(): Fix crash if report file disappears in the middle of the operation. (LP: #640216) - apport/ui.py, load_report(): Intercept another case of broken report files. (LP: #445142) - apport/report.py, standard_title(): Escape regular expression control characters in custom exception names. (LP: #762998) 1.22.1 (2011-09-06) ------------------- Improvements: - dupdb-admin: Add "removeid" command. Bug fixes: - dupdb-admin: Use the in-memory CrashDB implementation for simple operations like dump or changeid, which do not require an actual backend. This makes the command work in checkouts without a /etc/apport/crashdb.conf. - dupdb-admin: Fix UnicodeEncodeError crash. - launchpad.py: Fix crash if a crash report does not have a DistroRelease. - Set the default "Apport" title for choice dialogs instead of the default apport-gtk title. Thanks Robert Roth. (LP: #608222) - apport-gtk: Update markup_escape_text() call to current glib. (LP: #829635) 1.22 (2011-08-25) ----------------- Improvements: - Completely rework apport-retrace to use gdb's "debug-file-directory" and "solib-absolute-prefix" settings and only unpack the necessary packages in a temporary directory. This makes it possible to use it in a running system without actually touching installed packages, does not need any root privileges, and stops the requirement of using chroots with fakechroot and fakeroot. This is a lot easier to maintain and use, and a lot faster, too. As a consequence, drop the chroot module, and update crash-digger accordingly. See "man apport-retrace" for the new usage. It is now also easier to port to other packaging backends, as a lot of the common logic moved out of the packaging API; packaging.install_retracing_packages() got dropped in favor of the simpler packaging.install_packages(). - crash-digger: Show how many bugs are left in the pool with each new retrace. Bug fixes: - apport-gtk: Fix crash in GLib.markup_escape_text() call, regression from 1.21.3. (LP: #828010) - launchpad.py: When searchTasks() times out, exit with 99 as this is a transient error. - crash-digger: Intercept OverflowError from downloaded compressed attachments. 1.21.3 (2011-08-17) ------------------- Bug fixes: - gtk/apport-gtk.desktop.in: Also show in Unity. (LP: #803519) - apport-unpack: Fix crash on file errors. - Add apport.packaging.get_library_paths() interface and implement it for backends/packaging-apt-dpkg.py using dpkg multiarch directories. Use it in chroot.py. - hookutils.py: Don't attach empty values. Thanks Bryce Harrington. (LP: #813798) - apport-gtk: Correctly pass message dialog type. - apport-gtk: Fix GLib and GObject imports to be compatible with the future pygobject 3.0. Improvements: - hookutils.py: Add attach_mac_events() for reporting logs of MAC systems. Looks for AppArmor messages for now. Thanks Marc Deslauriers! - hookutils.py, attach_alsa(): Get a list of outputs/inputs that PulseAudio knows about, which also shows the currently selected output/input, as well as volumes. This should help with "no sound" bug troubleshooting. Thanks Luke Yelavich. 1.21.2 (2011-07-01) ------------------- Improvements: - test/run: Check $PYTHON for using a different Python interpreter (such as "python3") for the tests. - generic hook: Don't report package installation failures due to segfaulting maintainer scripts. We want the actual crash report only. Thanks Brian Murray. - hookutils.py, attach_wifi(): Also include wpasupplicant logs. Thanks Mathieu Trudel-Lapierre! Bug fixes: - backends/packaging-apt-dpkg.py: Fix crash introduced in 1.21.1's multiarch fixes. - report.py: Fix bug patterns to correctly match against compressed report fields. 1.21.1 (2011-06-20) ------------------- Improvements: - data/general-hooks/generic.py: Also check for low space on /var. Thanks Brian Murray. - hookutils.py, attach_file() and attach_file_if_exists(): Add a new "overwrite" flag option. If not given, now default to overwriting an existing key, as this is usually what you need when attaching files (instead of attaching it several times with '_' appended to the keys). You can get the old behaviour by setting overwrite=False. Bug fixes: - When showing the size of the full report, take the compressed size of binary values instead of their uncompressed size, as the crash db upload will use the compressed values. - backends/packaging-apt-dpkg.py: Fix for current dpkg with multiarch support. - test/run: Fix the test suite to run against the system installed libraries with current Python versions (2.6, 2.7) where __file__ does not work any more with imports. 1.21 (2011-06-08) ----------------- Improvements: - Supply --desktop option to kdesudo to improve the description which program is requesting administrative privileges. - apport-checkreports: Exit with status 2 if there are new reports, but apport is disabled. This helps crash notification GUIs to not display new crash reports in that case. Thanks to Michael Vogt for the original patch. - Add data/is-enabled: Shell script to check if apport is enabled. Non-Python programs (which can't use apport.packaging.enabled() ) can call this instead of having to parse /etc/default/apport themselves, and just check the exit code. Inspired by original patch from Michael Vogt, thanks! Bug fixes: - apport-gtk: HTML-escape text for dialogs with URLs. (LP: #750870) - dump_acpi_tables.py: Check to see if acpi/tables dir is mounted first. Thanks Brian Murray. (LP: #729622) - man/apport-cli.1: Document recently added -w/--window option. Thanks Abhinav Upadhyay! (LP: #765600) - Use kde-open instead of kfmclient to open URLs under KDE. Thanks Philip Muškovac. (LP: #765808) 1.20.1 (2011-03-31) ------------------- Bug fixes: - Add bash completion support for new -w/--window option that was introduced in 1.20. Thanks Philip Muškovac. - apport-unpack: Fix crash if target directory already exists. - Fix crash if UnreportableReason is a non-ASCII string. (LP: #738632) - Fix crash if application from desktop name is a non-ASCII string. (LP: #737799) - unkillable_shutdown: Fix rare crash if ExecutablePath does not exist (any more). (LP: #537904) - kernel_crashdump: Fix crash if the vmcore file disappeared underneath us. (LP: #450295) - unkillable_shutdown: Fix crash if the checked process terminated underneath us. (LP: #540436) - ui.py: Properly raise exceptions from the upload thread that happen at its very end. (LP: #469943) 1.20 (2011-03-17) ----------------- Improvements: - Add support for -w/--window option which will enable user to select a window as a target for filing a problem report. Thanks Abhinav Upadhyay for the patch! (LP: #357847) - Disable the filtering on SIGABRT without assertion messages. Turns out that developers want these crash reports after all. (LP: #729223) - Add support for a "DuplicateSignature" report fields. This allows package hooks to implement custom duplicate problem handling which doesn't need to be hardcoded in Apport itself. Update the launchpad backend to tag such bugs as "need-duplicate-check". Bug fixes: - report.py, add_hooks_info(): Properly report TypeErrors from hooks. - apport-retrace: Intercept SystemErrors from ill-formed gzip attachments as well. - Fix crash if crash database configuration does not specify a bug_pattern_url. Just assume None. (LP: #731526) - If a custom crash database does not specify a bug_pattern_url, fall back to using the default database's. (LP: #731526) - hookutils.py Update WifiSyslog regex to correctly catch application log messages in syslog. Thanks Mathieu Trudel-Lapierre. (LP: #732917) - hookutils.py, attach_hardware(): Avoid error message if machine does not have a PCI bus. Thanks Marcin Juszkiewicz! (LP: #608449) - backends/packaging-apt-dpkg.py: Replace deprecated getChanges() call with get_changes(). - apport-gtk: Fix broken dialog heading if the name of the crashed program contains an & or other markup specific characters. - apport-gtk: Don't crash if GTK cannot be initialized. This usually happens without a $DISPLAY or when the session is being shut down. Just print an error message. If there are pending crashes, they will be shown again the next time a session starts. (LP: #730569) 1.19 (2011-02-28) ----------------- Bug fixes: - Update stack unwind patterns for current glib (slightly changed function names), and also ignore a preceding '*'. (LP: #716251) - Fix crash_signature() to fail if there is an empty or too short StacktraceTop. - apt backend: Do not generate a warning if the opportunistically added -dbg package does not exist. - apt backend: Only add -dbg in --no-pkg mode, as there will be conflicts in normal package mode. - apt backend: Call tar with target cwd instead of using -C; the latter causes an extra openat() call which breaks with current fakechroot. - launchpad.py: Fix retracer crash if DistroRelease field does not exist. - Convert deprecated failIf()/assert_() TestCase method calls to assertFalse()/assertTrue(). Improvements: - In apport-bug, if the user specifies a PID referring to a kernel thread, do the right thing and file the bug against the kernel - In hookutils.attach_dmesg, skip over an initial truncated message if one is present (this happens when the ring buffer overflows) - Change bug patterns to just use one central file instead of per-package files. This allows bug patterns to be written which are not package specific, and is easier to maintain as well. IMPORTANT: This changed the format of crashdb.conf: bug_pattern_base is now obsolete, and the new attribute bug_pattern_url now points to the full URL/path of the patterns file. Thanks to Matt Zimmerman! 1.18 (2011-02-16) ----------------- Bug fixes: - Ensure that symptom scripts define a run() function, and don't show them if not. - Do not show symptom scripts which start with an underscore. These can be used for private libraries for the actual symptom scripts. - Update bash completion. Thanks Philip Muškovac. - etc/default/apport: Remove obsolete "maxsize" setting. (LP: #719564) Improvements: - Remove explicit handling of KDE *.ui files in setup.py, as python-distutils-extra 2.24 fixes this. Bump version check. - hookutils.py: Add attach_root_command_outputs() to run several commands at once. This avoids asking for the password several times. (LP: #716595) 1.17.2 (2011-02-04) ------------------- Improvements: - Be more Python 3 compatible (not fully working with Python 3 yet, though). - apt/dpkg backend: Drop support for pre-0.7.9 python-apt API. - Add --tag option to add extra tags to reports. (LP: #572504) Bug fixes: - hookutils.py, attach_dmesg(): Do not overwrite already existing dmesg. - hookutils.py: Be more robust against file permission errors. (LP: #444678) - ui.py: Do not show all the options in --help when invoked as *-bug. (LP: #665953) - launchpad.py: Adapt test cases to current standard_title() behaviour. 1.17.1 (2011-01-10) ------------------- Bug fixes: - Make the GTK frontend work with GTK 2.0 as well, and drop "3.0" requirement. 1.17 (2010-12-31) ----------------- Improvements: - Better standard bug titles for Python crashes. Thanks Matt Zimmerman! (LP: #681574) - Add handler for uncaught Java exceptions. There is no integration for automatically intercepting all Java crashes yet, see java/README. Thanks Matt Zimmerman! (LP: #548877) Bug fixes: - GTK frontend: Require GTK 3.0. - launchpad.py: Default to "production" instance, not "edge", since edge is obsolete now. - hookutils.py, attach_alsa(): Fix crash if /proc/asound/cards does not exist. (LP: #626215) - ui.py, format_filesize(): Fix to work with stricter locale.format() in Python 2.7. (LP: #688535). While we are at it, also change it to use base-10 units. - hookutils.py, package_versions(): Always include all requested package names even if they're unknown to us. Thanks Matt Zimmerman! (LP: #695188) - launchpad.py: When updating a bug, also add new tags. Thanks Brian Murray! 1.16 (2010-11-19) ----------------- New features: - Port GTK frontend from pygtk2 to GTK+3.0 and gobject-introspection. Bug fixes: - Fix symptoms again. Version 1.15 broke the default symptom directory. - Fix memory test case to work with current Python versions, where the SQLite integrity check throws a different exception. 1.15 (2010-11-11) ----------------- New features: - Add dump_acpi_tables.py script. This can be called by package hooks which need ACPI table information (in particular, kernel bug reports). Thanks to Brad Figg for the script! - Order symptom descriptions alphabetically. Thanks to Javier Collado. - Check $APPORT_SYMPTOMS_DIR environment variable for overriding the system default path. Thanks to Javier Collado. Bug fixes: - testsuite: Check that crashdb.conf can have dynamic code to determine DB names and options. - ui.py test suite: Rewrite _gen_test_crash() to have the test process core dump itself, instead of using gdb to do it. The latter fails in ptrace restricted environments, such as Ubuntu 10.10. - packaging-apt-dpkg.py: Fix handling of /etc/apport/native-origins.d to actually work. Thanks Steve Langasek. (LP: #627777) - apport-kde: Load correct translation catalogue. Thanks Jonathan Riddell. (LP: #633483) - launchpad.py: Use launchpadlib to file a bug instead of screen scraping. The latter was completely broken with current Launchpad, so this makes the test suite actually work again. Thanks to Diogo Matsubara! - launchpad.py: Change $APPORT_STAGING to $APPORT_LAUNCHPAD_INSTANCE, so that you can now specify "staging", "edge", or "dev" (for a local http://launchpad.dev installation). Thanks to Diogo Matsubara! - backends/packaging-apt-dpkg.py: Fix crash on empty lines in ProcMaps attachment. - doc/symptoms.txt: Fix typo, thanks Philip Muskovac. (LP: #590521) - apport/hookutils.py: rename ProcCmdLine to ProcKernelCmdLine to not wipe wipe out /proc/$pid/cmdline information. (LP: #657091) - apport/hookutils.py: attach_file() will not overwrite existing report keys, instead appending "_" until the key is unique. - Fix --save option to recognise ~, thanks Philip Muškovac. (LP: #657278) - Remove escalation_subscription from Ubuntu bug DB definition, turned out to not be useful; thanks Brian Murray. - launchpad.py: Fix APPORT_LAUNCHPAD_INSTANCE values with a https:// prefix. - apt backend: Opportunistically try to install a -dbg package in addition to -dbgsym, to increase the chance that at least one of it exists. Thanks Daniel J Blueman! 1.14.1 (2010-06-24) ------------------- Bug fixes: - hookutils.py, attach_drm_info(): Sanitize connector names. Thanks Chris Halse Rogers! (LP: #597558) - bash completion: Complete all path names, apport-bug can be invoked with a path to a program. Thanks Philip Muskovac. 1.14 (2010-06-16) ----------------- New features: - hookutils.py: Add new method attach_drm_info() to read and format /sys/class/drm/*. Bug fixes: - packaging-apt-dpkg.py: Fix deprecated python-apt variables, thanks David Stansby. (LP: #591695) - launchpad.py: Fix crash on attachments which are named *.gz, but uncompressed. (LP: #574360) - hookutils.py, attach_gconf(): Fix defaults parsing for boolean keys. (LP: #583109) 1.13.4 (2010-05-04) ------------------- - bash completion: Fix error message if /usr/share/apport/symptoms does not exist. Thanks Philip Muškovac! (LP: #562118) - general-hooks/parse_segv.py: Report stack exhaustion more clearly and correctly handle register dereferencing calls. - Save/restore environment when calling hooks, in case they change the locale, etc. (LP: #564422) - hookutils.py, command_output(): Do not set $LC_MESSAGES for the calling process/hook, just for the command to be called. - ui.py: When displaying strings from system exceptions, decode them into an unicode string, to avoid crashing the KDE UI. (LP: #567253) - apport-retrace: Fix crash for retracing kernel vmcores, which do not have an ExecutablePath. - apport-bug manpage: Clarify when apport-collect may be used. Thanks Brian Murray! (LP: #537273) - generic hook: Check ProcMaps for unpackaged libraries, and ask the user if he really wants to continue. If he does, tag the report as "local-libs" and add a "LocalLibraries" field to the report with a list of them. (LP: #545227) 1.13.3 (2010-04-14) ------------------- - data/general-hooks/parse_segv.py: suggest segv-in-kernel possibility. - ui.py: When running as root, only show system crash reports, to avoid restarting user programs as root. (LP: #445017) 1.13.2 (2010-03-31) ------------------- - problem_report.py, write_mime(): Add new optional argument "priority_fields" for ordering report keys. Patch by Brian Murray, thanks! - launchpad.py: Put some interesting fields first in the report, with the new priority_fields argument. Patch by Brian Murray, thanks! - packaging-apt-dpkg.py, _install_debug_kernel(): Do not crash on an outdated kernel, just return that it is outdated. (LP: #532923) - launchpad.py test suite: Add "Referer" HTTP header, now required by launchpad. - launchpad.py: Fix crash if configuration does not have an "escalated_tag" option. - launchpad.py: Port to launchpadlib 1.0 API, thanks Michael Bienia for the initial patch! (LP: #545009) - gtk/apport-gtk-mime.desktop.in, kde/apport-kde-mime.desktop.in: Change categories so that these do not ever appear in menu editors. (LP: #449215) - launchpad.py: Some LP bugs have broken attachments (this is a bug in Launchpad itself). Ignore those instead of crashing. - apport-gtk: Turn http:// and https:// links into clickable hyperlinks in information and error dialogs. (LP: #516323) - apport-retrace: Fix crash when trying to rebuild package info for reports without an ExecutablePath. (LP: #436157) - ui.py: Fix crash when package information cannot be determined due to broken apt status. (LP: #362743) - ui.py: Fix crash when /etc/apport/crashdb.conf is damaged; print an appropriate error message instead. (LP: #528327) - data/kernel_crashdump: Fix crash if log file disappeared underneath us. (LP: #510327) - data/apport: Fix IOError when apport is called with invalid number of arguments, and stderr is not a valid fd. (LP: #467363) - hookutils.py: Factor out the DMI collection code from attach_hardware() into attach_dmi(), and call that in attach_alsa() as well. Thanks to Brad Figg for the patch! (LP: #552091) - apport/ui.py: Fix the help output if Apport is invoked under an alternative name (like apport-collect). (LP: #539427) 1.13.1 (2010-03-20) ------------------- Bug fixes: - Update parse-segv to handle gdb 7.1 output. - Enhance test suite to work with gdb 7.1 as well, and catch future outputs. - UI: Add exception string to the "network error" dialog, to better tell what the problem is. - UI: Add back -p option to apport-collect/apport-update-bug (regression from 1.13). (LP: #538944) - launchpad.py: Add yet another workaround for LP#336866. (LP: #516381) - launchpad.py, download(): Ignore attachments with invalid key names. - Fix regression from 1.10 which made it impossible for a package hook to set a third-party crash database for non-native packages. (LP: #517272) - apport-cli: Create the 'details' string only if user wants to view details, and do not show files larger than 1MB. Thanks Scott Moser! (LP: #486122) - packaging-apt-dpkg.py: Silence apt.Cache() spewage to stdout with newer python-apt versions. (LP: #531518) Improvements: - unkillable_shutdown: Add list of running processes and blacklisted pids to report. (LP: #537262) - Sort the report by key in the details view. (LP: #519416) 1.13 (2010-03-10) ----------------- New features: - Add "unkillable_shutdown" script to collect information about processes which are still running after sending SIGTERM to them. This can be hooked into e. g. /etc/init.d/sendsigs on Debian/Ubuntu systems. Improvements: - apport_python_hook.py: Directly check /etc/default/apport instead of querying packaging.enabled(), to avoid importing lots of modules for non-packaged scripts. Thanks Stuart Colville! (LP: #528355) Bug fixes: - Fix SegV parser to notice walking off the stack during "call" or "ret" (LP: #531672). - Fix --help output for bug updating mode (invocation as apport-collect or apport-update-bug). (LP: #504116) - Fix bug escalation tagging, thanks to Brian Murray. - Fix option processing when being invoked as apport-bug. Thanks to Daniel Hahler for the patch! (LP: #532944) 1.12.1 (2010-02-22) ------------------- Bug fixes: - launchpad.py: Do not keep escalating bugs, just escalate at the 10th duplicate. - Improve error message if a symptom script did not determine a package name. (LP: #503834) - general-hooks/generic.py: Fix crash on libGL check with empty StacktraceTop. - Review and clean up usage of chmod(). This fixes a small race condition in the Python exception hook where a local attacker could read the information from another user's crash report. (LP: #516029) - hookutils, package_versions(): Ignore "None" packages, for more robust package hooks. (LP: #518295) 1.12 (2010-01-20) ----------------- Improvements: - launchpad.py: Add options 'escalation_subscription' and 'escalation_tag' for handling bugs with more than 10 duplicates. - crashdb.conf: For Ubuntu, escalate bugs with >= 10 duplicates to "ubuntu-bugcontrol" and tag them with "bugpattern-needed". (LP: #487900) - general-hooks/generic.py: Filter out crashes on missing GLX (LP: #327673) - Add bash completion script. Thanks to Philip Muškovac. (LP: #218933) Bug fixes: - launchpad.py: Drop APPORT_FILES whitelist for download() and instead just filter out file extensions that we know about (*.txt and *.gz). (LP: #444975) - launchpad.py: Do not put the Tags: field into the bug description, since they are already proper tags. In download(), convert the real tags back to the Tags: field. (LP: #505671) - test/crash: Update expected core dump flags for changed rlimit behaviour in Linux 2.6.32. - launchpad.py: Fix marking of 'checked for duplicate' for bugs with upstream tasks. - launchpad.py, get_fixed_version(): Do not consider a bug as invalid just because it has any invalid distro package task. 1.11 (2009-12-23) ----------------- Improvements: - Add "--save" UI option to store the collected information into an .apport file instead of sending it right away. The file can then later be sent through apport-bug. Update manpages accordingly. - Update all copyright and description headers and consistently format them. - Rename all TestCase classes to "_T", which makes it much easier to run individual tests from the command line. - Testsuite: Verify that report details are/are not shown. This uncovered that details about package installation failures were not shown before sending them, which is fixed now. Bug fixes: - test/hooks: Do not try to add hook information to kernel_crashdump test case, since we do not have an UI here. This test case broke when the system had an interactive package hook for the kernel. - When reporting a bug from a saved .apport file, let the user review/confirm the content before sending. 1.10.1 (2009-12-23) ------------------- Improvements: - Install apport-collect symlink. - Update translations from Launchpad. Bug fixes: - Move all remaining option/argument parsing from apport-bug into ui.py. This allows the user to add options to apport-bug/apport-collect, and also avoids unwieldy dissection of options/arguments in shell. 1.10 (2009-12-19) ----------------- New features: - Add a mode for updating an existing problem report to ui.py (-u/--update). This is similar to the Ubuntu specific "apport-collect" tool, but implemented the right way now: In particular, this has access to the UI and thus can use interactive hooks (LP: #385811) and show you what is being sent for confirmation/cancelling (LP: #371827) - apport-bug: If invoked as "apport-collect" or "apport-update-bug" (i. e. through a symlink), run apport in update mode (-u ). This provides a convenient no-options command line program. Please note that setup.py does not currently install such a symlink. Update the apport-bug manpage accordingly. Improvements: - launchpad.py: Use new login_with() to clean up code, and specify allowed access levels (WRITE_PRIVATE is the only sensible one anyway). (LP: #410205) - New hookutils functions: xsession_errors (match lines from ~/.xsession-errors) shared_libraries (determine which libraries a binary links with) links_with_shared_library (test if a binary links with a particular library) - New CrashDatabase API: get_affected_packages(), can_update(), is_reporter() - Rename CrashDatabase.update() to update_traces(). - Add CrashDatabase.update() for adding all new fields of a report. This is primarily useful for collecting local standard and package hook data for an already existing bug report which was not filed through Apport. This checks can_update()/is_reporter() if the user is eligible for updating that particular bug. (LP: #485880) Bug fixes: - Ignore SIGXCPU and SIGXFSZ; thanks to Kees Cook. (LP: #498074) - launchpad.py: Do not mark non-Ubuntu bugs as needs-retrace, since there is no retracer right now. (LP: #489794) - packaging-apt-dpkg.py, install_retracing_packages(): Do not crash on malformed Dependencies.txt lines. (LP: #441709) - use-local: Fix for new source tree location of "apport" binary. 1.9.6 (2009-12-01) ------------------ Improvements: - Add pm-utils hook to record current operation, so that apportcheckresume can check it. Before this was kept in Ubuntu's pm-utils package. - general-hooks/generic.py: Check if using ecryptfs, and which directory. (LP: #444656) Bug fixes: - launchpad.py: Ensure that text attachments on initial bug filing are valid UTF-8. (LP: #453203) - man/apport-retrace.1: Document -R option. 1.9.5 (2009-11-20) ------------------ Bug fixes: - apport-retrace: Fix crash if InterpreterPath/ExecutablePath do not exist. - hookutils.py, attach_alsa(): Attach /proc/cpuinfo too, for CPU flags. - Fix crash if InterpreterPath does not exist any more at the time of reporting. (LP: #428289) - apport-gtk: Connect signals properly, to repair cancel/window close buttons. (LP: #427814) - Update German translations and fix "konnre" typo. (LP: #484119) 1.9.4 (2009-11-06) ------------------ Bug fixes: - Fix crash when ExecutablePath isn't part of a package. (LP: #424965) - hookutils.py, attach_hardware(): Anonymize disk labels. Thanks to Marco Rodrigues. (LP: #394411) - hookutils.py, attach_wifi(): Anonymize encryption key (which appeared in hex when being called as root). Thanks to Marco Rodrigues. (LP: #446299) - launchpad.py: If unset, set bug task source package also for interpreter crashes. - apport-gtk: Give details window a minimize/maximize button, which were missing in some window managers. Thanks to Marien Zwart. (LP: #447749) - apport-kde: Properly terminate program after closing the last dialog. (LP: #458662) - hookutils.py, attach_alsa(): Attach /proc/asound/version. (LP: #467233) - general-hooks/generic.py: Only collect ~/.xsession-errors bits when we have an ExecutablePath linked to libgtk. 1.9.3 (2009-10-14) ------------------ Changes: - Drop handling of the APPORT_REPORT_THIRDPARTY environment variable and "thirdparty" configuration file option. This has never been documented, and conceptually does not work. There is a proper mechanism for this in place now, e. g. launchpad.py's "project" option. Bug fixes: - hookutils.py: Fix error codes from "comm", thanks to Brian Murray. - general-hooks/generic.py: Catch xkbcomp error messages. (LP: #431807) - launchpad.py: Assert that we have exactly one of "distro" or "project" option. - doc/crashdb-conf.txt: Improve documentation of crash database options. - apport-gtk: Make Cancel/Send buttons focusable. Thanks to Marco Rodrigues. (LP: #447780) 1.9.2 (2009-10-02) ------------------ Improvements: - apport-cli: Print the URL and ask whether to open a browser. In many situations (such as usage on a server through ssh), it's preferable to not open the browser on the reporting computer. Thanks to Matt Zimmerman for the initial patch! (LP: #286415) - general-hooks/generic.py: Collect important glib errors/assertions (which should not have private data) from ~/.xsession-errors (LP: #431807) - launchpad.py: Link hardware data submission key if it exists. (LP: #424382) Bug fixes: - apport-cli: Fix crash with non-ASCII characters in prompts. - Fix "apport-bug symptomname" to actually work. - launchpad.py: Fix crash on invalid credentials file. Thanks to Marco Rodrigues for the initial patch! (LP: #414055) 1.9.1 (2009-09-22) ------------------ Bug fixes: - hookutils.py, attach_hardware(): Do not attach empty Pccardctl*. - apport/report.py, add_gdb_info(): Do not throw away stderr from gdb. - data/general-hooks/parse_segv.py: + Handle arithmetic wrapping correctly. + Handle empty base, scale, or index registers in disassembly. + Handle in/out ioport faults. - Various improvements to user-visible strings, thanks to Marco Rodrigues! (LP: #178507) - Various apport-retrace robustifications. - setup.py: Fix DistUtilsExtra version check. (LP: #428337) - hookutils.py, attach_gconf(): Do not overwrite previous values from other packages, thanks Loïc Minier! - hookutils.py, attach_gconf(): Fix crash with nonexisting tags. 1.9 (2009-09-08) ---------------- New features: - Add "do what I mean" mode to command line argument parsing (applies to all interfaces: -cli, -gtk, -kde). When giving a single argument and no options, determine the most likely mode, like reporting a bug against a symptom, package, executable name, or PID. - Add program "apport-bug" which determines the most appropriate user interface (GTK, KDE, CLI) and files a bug through it, using the single argument "do what I mean" mode. This is an improved version of Ubuntu's "ubuntu-bug" script. Bug fixes: - Update apport-cli manpage to current set of options and behaviour. Also point out that apport-gtk and apport-kde share the same CLI. - setup.py now installs apport-{gtk,kde} into $prefix/share/apport/, they are not supposed to be called directly. This also reflects the path which the .desktop files expect. - setup.py now installs the internal helper scripts like "kernel_crashdump", "apport", or "apportcheckresume" into $prefix/share/apport instead of $prefix/bin. - Update usage of gettext to work around Python bug of gettext() not returning unicodes, but str. Fixes UnicodeDecodeErrors on translated --help output. 1.8.2 (2009-09-05) ------------------ Bug fixes. 1.8.1 (2009-09-03) ------------------ Lots of bug fixes. 1.8 (2009-08-26) ---------------- New features: - Do not generally ignore SIGABRT any more. Try to extract the assertion message from the core dump, and add it as "AssertionMessage" field. Mark reports as unreportable if they do not have an assertion message and crashed with SIGABRT. This requires your glibc to have this patch: http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=48dcd0ba - report.py, add_hooks_info(): Add optional package/srcpackage argument. Hooks can use that to change the affected package or call hooks from different packages. - KDE frontend implementation of ui_question_userpass(), for crash databases which need to ask for credentials. - hookutils.py: New funtion attach_wifi() to add wireless network related information to reports. Important bug fixes: - Fix the test suite on current kernels; test/crash previously often failed with python segfaults, since it killed the test processes too early. 1.7 (2009-08-05): ----------------- New features: - Support for "symptom" scripts, which figure out the package for a bug report based on interactive questions. 1.6 (2009-07-15) ---------------- New features: - Integrate analysis and retracing of kernel vmcore crashes with the "crash" tool. Courtesy of Michael Vogt. Various little bug fixes. 1.5 (2009-06-29) ---------------- New features: - Drop all Makefiles, po/POTFILES.in, and most code from setup.py, and use DistUtilsExtras.auto which "just does the right thing" for most build system tasks. This requires python-distutils-extra >= 2.2, see https://launchpad.net/python-distutils-extra Cleanup: - Move all test scripts into test/, to unclutter source tree. - setup.py now auto-detects the required packaging backend if apport/packaging_impl.py is not manually installed. 1.4 (2009-06-26) ---------------- New features: - Replaced Qt4 frontend with a KDE frontend for better KDE integration. Major bug fixes: - packaging-apt-dpkg.py: Add backwards compatibility code for python-apt < 0.7.9 to not break backportability. 1.3 (2009-06-10) ---------------- New features: - Interactive package hooks: * Add apport.ui.HookUI class which provides GUI functionality such as yes/no questions or file dialogs to hooks. * add_info() in package hooks now can (optionally) take a second argument which is the HookUI instance. * See doc/package-hooks.txt for details. - New function apport.hookutils.root_command_output() to run a command as root, through gksu/kdesudo/sudo, depending on the desktop environment. - Add general hook for analyzing reason of a segfault. Bug fixes: - Drop "UnsupportableReason" field, it is too similar to UnreportableReason and just confusing. - Report key names can now contain dashes ('-') and underscores ('_'). (LP #380811) 1.2.1 (2009-05-15) ------------------ Bug fixes: - Fix setup.py and PO file merging for recent .glade -> .ui renaming. Translations: - Update German translations. 1.2.0 (2009-05-15) ------------------ Moving away from deprecated APIs: - packaging-apt-dpkg.py: Use python-apt >= 0.7.9 official API and drop usage of internal symbols. - hookutils.py: Drop hal related functions and queries, replace with udev database, udev log file, and DMI information from sysfs. - gtk UI: Convert from libglade to gtk.Builder. Bug fixes: - hookutils.py: Drop /proc/version_signature collection, it is Ubuntu specific. - apportcheckresume: Fix log collection from pm-utils. - Fix various crashes and report properties for reporting against uninstalled packages. 1.1.1 (2009-04-30) ------------------ Security fix: - etc/cron.daily/apport: Only attempt to remove files and symlinks, do not descend into subdirectories of /var/crash/. Doing so might be exploited by a race condition between find traversing a huge directory tree, changing an existing subdir into a symlink to e. g. /etc/, and finally getting that piped to rm. This also changes the find command to not use GNU extensions. Thanks to Stephane Chazelas for discovering this! (LP #357024, CVE-2009-1295) Bug fixes: - launchpad.py: Send and read Date: field again, reverting r1128; it is useful after all. (LP #349139) - Only add ProcAttrCurrent to reports if it is not "unconfined", to remove some noise from reports. - Detect invalid PIDs in the UI (such as for kernel processes) and give a friendly error message instead of silently doing nothing. (LP #360608) - Always run common hooks, and run source package hooks if we do not have a binary package name. (LP #350131) - launchpad.py: Consider socket errors when connecting as transient, so that crash-digger doesn't stop completely on them. 1.1 (2009-04-20) ---------------- New features: - Add hookutils methods for attaching relevant packages, greatly improve attach_alsa() for sound problem debugging. - Move launchpad crash database implementation from ever-breaking python-launchpad-bugs (screenscraping) to launchpadlib (official and stable Launchpad API). Bug fixes: - Drop some remaining distro specific pieces of code. - Add new field Report.pid which gets set on add_proc_info() and can be used by hooks. - setup.py: Properly clean up all generated files, install missing mimetypes/text-x-apport.svg icon symlink. - Add README file. - Add translations from Launchpad. - Remove preloadlib/*; it's undermaintained, and not really useful any more these days. - Various bug fixes; most visible being the misnamed etc/default/apport.default file (which should just be etc/default/apport). 1.0 (2009-04-06) ---------------- First upstream release, based on Ubuntu packaging branch; that had been the de-facto trunk for many years, but this becomes unpractical with several distributions using it now. apport-2.20.11/README0000664000000000000000000000600614416105132010731 0ustar Apport crash detection/reporting ================================ Apport intercepts Program crashes, collects debugging information about the crash and the operating system environment, and sends it to bug trackers in a standardized form. It also offers the user to report a bug about a package, with again collecting as much information about it as possible. It currently supports - Crashes from standard signals (SIGSEGV, SIGILL, etc.) through the kernel coredump handler (in piping mode) - Unhandled Python exceptions - GTK, KDE, and command line user interfaces - Packages can ship hooks for collecting specific data (such as /var/log/Xorg.0.log for X.org, or modified gconf settings for GNOME programs) - apt/dpkg and rpm backend (in production use in Ubuntu and OpenSUSE) - Reprocessing a core dump and debug symbols for post-mortem (and preferably server-side) generation of fully symbolic stack traces (apport-retrace) - Reporting bugs to Launchpad (more backends can be easily added) Please see https://wiki.ubuntu.com/Apport for more details and further links. The files in doc/ document particular details such as package hooks, crash database configuration, or the internal data format. Temporarily enabling apport =========================== The automatic crash interception component of apport is disabled by default in stable releases for a number of reasons [1]. To enable it just for the current session, do sudo service apport start force_start=1 Then you can simply trigger the crash again, and Apport's dialog will show up with instructions to report a bug with traces. Apport will be automatically disabled on next start. If you are triaging bugs, this is the best way to get traces from bug reporters that didn't use Apport in the first place. To enable it permanently, do: sudo nano /etc/default/apport and change enabled from "0" to "1". [1] https://wiki.ubuntu.com/Apport#How%20to%20enable%20apport Crash notification on servers ============================= You can add if [ -x /usr/bin/apport-cli ]; then if groups | grep -qw admin && /usr/share/apport/apport-checkreports -s; then cat <<-EOF You have new problem reports waiting in /var/crash. To take a look at them, run "sudo apport-cli". EOF elif /usr/share/apport/apport-checkreports; then cat <<-EOF You have new problem reports waiting in /var/crash. To take a look at them, run "apport-cli". EOF fi fi to your ~/.bashrc to get automatic notification of problem reports. Contributing ============ Please visit Apport's Launchpad homepage for links to the source code revision control, the bug tracker, translations, downloads, etc.: https://launchpad.net/apport The preferred mode of operation for Linux distribution packagers is to create their own branch from 'trunk' and add the distro specific packaging and patches to it. Please send patches which are applicable to trunk as merge requests or bug reports, so that (1) other distributions can benefit from them as well, and (2) you reduce the code delta to upstream. apport-2.20.11/TODO0000664000000000000000000000072013562354544010554 0ustar apport: - check crashes of root processes with dropped privs in test suite dup detection: - add merging of two databases -> needs time stamp of last change GUI: - point out bug privacy and to leave it private by default hooks: - add hooks which run during program crash, to collect more runtime data hookutils: - run hooks for related packages in attach_related_packages apt-dpkg backend: - use python-apt's Version.get_source() instead of apt-get source apport-2.20.11/__pycache__/0000755000000000000000000000000015020112462012251 5ustar apport-2.20.11/apport/0000775000000000000000000000000015020112462011350 5ustar apport-2.20.11/apport/REThread.py0000664000000000000000000000436514416106601013376 0ustar '''Enhanced Thread with support for return values and exception propagation.''' # Copyright (C) 2007 Canonical Ltd. # Author: Martin Pitt # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import threading, sys class REThread(threading.Thread): '''Thread with return values and exception propagation.''' def __init__(self, group=None, target=None, name=None, args=(), kwargs={}): '''Initialize Thread, identical to threading.Thread.__init__().''' threading.Thread.__init__(self, group, target, name, args, kwargs) self.__target = target self.__args = args self.__kwargs = kwargs self._retval = None self._exception = None def run(self): '''Run target function, identical to threading.Thread.run().''' if self.__target: try: self._retval = self.__target(*self.__args, **self.__kwargs) except: if sys: self._exception = sys.exc_info() def return_value(self): '''Return value from target function. This can only be called after the thread has finished, i. e. when is_alive() is False and did not terminate with an exception. ''' assert not self.is_alive() assert not self._exception return self._retval def exc_info(self): '''Return (type, value, traceback) of the exception caught in run().''' return self._exception def exc_raise(self): '''Raise the exception caught in the thread. Do nothing if no exception was caught. ''' if self._exception: # there is no syntax which both Python 2 and 3 parse, so we need a # hack using exec() here # Python 3: if sys.version > '3': raise self._exception[1].with_traceback(self._exception[2]) else: exec('raise self._exception[0], self._exception[1], self._exception[2]') apport-2.20.11/apport/__init__.py0000664000000000000000000000322514416106601013471 0ustar import sys import os import time from apport.report import Report from apport.packaging_impl import impl as packaging Report # pyflakes packaging # pyflakes # fix gettext to output proper unicode strings import gettext def unicode_gettext(str): trans = gettext.gettext(str) if isinstance(trans, bytes): return trans.decode('UTF-8') else: return trans def log(message, timestamp=False): '''Log the given string to stdout. Prepend timestamp if requested''' if timestamp: sys.stdout.write('%s: ' % time.strftime('%x %X')) print(message) def fatal(msg, *args): '''Print out an error message and exit the program.''' error(msg, *args) sys.exit(1) def error(msg, *args): '''Print out an error message.''' if sys.stderr: sys.stderr.write('ERROR: ') sys.stderr.write(msg % args) sys.stderr.write('\n') def warning(msg, *args): '''Print out an warning message.''' if sys.stderr: sys.stderr.write('WARNING: ') sys.stderr.write(msg % args) sys.stderr.write('\n') def memdbg(checkpoint): '''Print current memory usage. This is only done if $APPORT_MEMDEBUG is set. ''' if 'APPORT_MEMDEBUG' not in os.environ or not sys.stderr: return memstat = {} with open('/proc/self/status') as f: for line in f: if line.startswith('Vm'): (field, size, unit) = line.split() memstat[field[:-1]] = int(size) / 1024. sys.stderr.write('Size: %.1f MB, RSS: %.1f MB, Stk: %.1f MB @ %s\n' % (memstat['VmSize'], memstat['VmRSS'], memstat['VmStk'], checkpoint)) apport-2.20.11/apport/__pycache__/0000755000000000000000000000000015020112462013556 5ustar apport-2.20.11/apport/com.ubuntu.apport.policy.in0000664000000000000000000000271613562354544016631 0ustar Apport https://wiki.ubuntu.com/Apport apport <_description>Collect system information <_message>Authentication is required to collect system information for this problem report /usr/share/apport/root_info_wrapper auth_admin auth_admin auth_admin <_description>System problem reports <_message>Please enter your password to access problem reports of system programs /usr/share/apport/apport-gtk true auth_admin auth_admin auth_admin apport-2.20.11/apport/crashdb.py0000664000000000000000000010107114416105132013334 0ustar '''Abstract crash database interface.''' # Copyright (C) 2007 - 2009 Canonical Ltd. # Author: Martin Pitt # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os, os.path, sys, shutil try: from exceptions import Exception from urllib import quote_plus, urlopen URLError = IOError (quote_plus, urlopen) # pyflakes except ImportError: # python 3 from functools import cmp_to_key from urllib.parse import quote_plus from urllib.request import urlopen from urllib.error import URLError import apport def _u(str): '''Convert str to an unicode if it isn't already.''' if isinstance(str, bytes): return str.decode('UTF-8', 'ignore') return str class CrashDatabase: def __init__(self, auth_file, options): '''Initialize crash database connection. You need to specify an implementation specific file with the authentication credentials for retracing access for download() and update(). For upload() and get_comment_url() you can use None. options is a dictionary with additional settings from crashdb.conf; see get_crashdb() for details. ''' self.auth_file = auth_file self.options = options self.duplicate_db = None def get_bugpattern_baseurl(self): '''Return the base URL for bug patterns. See apport.report.Report.search_bug_patterns() for details. If this function returns None, bug patterns are disabled. ''' return self.options.get('bug_pattern_url') def accepts(self, report): '''Check if this report can be uploaded to this database. Crash databases might limit the types of reports they get with e. g. the "problem_types" option. ''' if 'problem_types' in self.options: return report.get('ProblemType') in self.options['problem_types'] return True # # API for duplicate detection # # Tests are in apport/crashdb_impl/memory.py. def init_duplicate_db(self, path): '''Initialize duplicate database. path specifies an SQLite database. It will be created if it does not exist yet. ''' import sqlite3 as dbapi2 assert dbapi2.paramstyle == 'qmark', \ 'this module assumes qmark dbapi parameter style' self.format_version = 3 init = not os.path.exists(path) or path == ':memory:' or \ os.path.getsize(path) == 0 self.duplicate_db = dbapi2.connect(path, timeout=7200) if init: cur = self.duplicate_db.cursor() cur.execute('CREATE TABLE version (format INTEGER NOT NULL)') cur.execute('INSERT INTO version VALUES (?)', [self.format_version]) cur.execute('''CREATE TABLE crashes ( signature VARCHAR(255) NOT NULL, crash_id INTEGER NOT NULL, fixed_version VARCHAR(50), last_change TIMESTAMP, CONSTRAINT crashes_pk PRIMARY KEY (crash_id))''') cur.execute('''CREATE TABLE address_signatures ( signature VARCHAR(1000) NOT NULL, crash_id INTEGER NOT NULL, CONSTRAINT address_signatures_pk PRIMARY KEY (signature))''') self.duplicate_db.commit() # verify integrity cur = self.duplicate_db.cursor() cur.execute('PRAGMA integrity_check') result = cur.fetchall() if result != [('ok',)]: raise SystemError('Corrupt duplicate db:' + str(result)) try: cur.execute('SELECT format FROM version') result = cur.fetchone() except self.duplicate_db.OperationalError as e: if 'no such table' in str(e): # first db format did not have version table yet result = [0] if result[0] > self.format_version: raise SystemError('duplicate DB has unknown format %i' % result[0]) if result[0] < self.format_version: print('duplicate db has format %i, upgrading to %i' % (result[0], self.format_version)) self._duplicate_db_upgrade(result[0]) def check_duplicate(self, id, report=None): '''Check whether a crash is already known. If the crash is new, it will be added to the duplicate database and the function returns None. If the crash is already known, the function returns a pair (crash_id, fixed_version), where fixed_version might be None if the crash is not fixed in the latest version yet. Depending on whether the version in report is smaller than/equal to the fixed version or larger, this calls close_duplicate() or mark_regression(). If the report does not have a valid crash signature, this function does nothing and just returns None. By default, the report gets download()ed, but for performance reasons it can be explicitly passed to this function if it is already available. ''' assert self.duplicate_db, 'init_duplicate_db() needs to be called before' if not report: report = self.download(id) self._mark_dup_checked(id, report) if 'DuplicateSignature' in report: sig = report['DuplicateSignature'] else: sig = report.crash_signature() existing = [] if sig: # use real duplicate signature existing = self._duplicate_search_signature(sig, id) if existing: # update status of existing master bugs for (ex_id, _) in existing: self._duplicate_db_sync_status(ex_id) existing = self._duplicate_search_signature(sig, id) try: report_package_version = report['Package'].split()[1] except (KeyError, IndexError): report_package_version = None # check the existing IDs whether there is one that is unfixed or not # older than the report's package version; if so, we have a duplicate. master_id = None master_ver = None for (ex_id, ex_ver) in existing: if not ex_ver or not report_package_version or apport.packaging.compare_versions(report_package_version, ex_ver) < 0: master_id = ex_id master_ver = ex_ver break else: # if we did not find a new enough open master report, # we have a regression of the latest fix. Mark it so, and create a # new unfixed ID for it later on if existing: self.mark_regression(id, existing[-1][0]) # now query address signatures, they might turn up another duplicate # (not necessarily the same, due to Stacktraces sometimes being # slightly different) addr_sig = report.crash_signature_addresses() if addr_sig: addr_match = self._duplicate_search_address_signature(addr_sig) if addr_match and addr_match != master_id: if master_id is None: # we have a duplicate only identified by address sig, close it master_id = addr_match else: # our bug is a dupe of two different masters, one from # symbolic, the other from addr matching (see LP#943117); # make them all duplicates of each other, using the lower # number as master if master_id < addr_match: self.close_duplicate(report, addr_match, master_id) self._duplicate_db_merge_id(addr_match, master_id) else: self.close_duplicate(report, master_id, addr_match) self._duplicate_db_merge_id(master_id, addr_match) master_id = addr_match master_ver = None # no version tracking for address signatures yet if master_id is not None and master_id != id: if addr_sig: self._duplicate_db_add_address_signature(addr_sig, master_id) self.close_duplicate(report, id, master_id) return (master_id, master_ver) # no duplicate detected; create a new record for the ID if we don't have one already if sig: cur = self.duplicate_db.cursor() cur.execute('SELECT count(*) FROM crashes WHERE crash_id == ?', [id]) count_id = cur.fetchone()[0] if count_id == 0: cur.execute('INSERT INTO crashes VALUES (?, ?, ?, CURRENT_TIMESTAMP)', (_u(sig), id, None)) self.duplicate_db.commit() if addr_sig: self._duplicate_db_add_address_signature(addr_sig, id) return None def known(self, report): '''Check if the crash db already knows about the crash signature. Check if the report has a DuplicateSignature, crash_signature(), or StacktraceAddressSignature, and ask the database whether the problem is already known. If so, return an URL where the user can check the status or subscribe (if available), or just return True if the report is known but there is no public URL. In that case the report will not be uploaded (i. e. upload() will not be called). Return None if the report does not have any signature or the crash database does not support checking for duplicates on the client side. The default implementation uses a text file format generated by duplicate_db_publish() at an URL specified by the "dupdb_url" option. Subclasses are free to override this with a custom implementation, such as a real database lookup. ''' if not self.options.get('dupdb_url'): return None for kind in ('sig', 'address'): # get signature if kind == 'sig': if 'DuplicateSignature' in report: sig = report['DuplicateSignature'] else: sig = report.crash_signature() else: sig = report.crash_signature_addresses() if not sig: continue # build URL where the data should be h = self.duplicate_sig_hash(sig) if not h: return None # the hash is already quoted, but we really want to open the quoted # file names; as urlopen() unquotes, we need to double-quote here # again so that urlopen() sees the single-quoted file names url = os.path.join(self.options['dupdb_url'], kind, quote_plus(h)) # read data file try: f = urlopen(url) contents = f.read().decode('UTF-8') f.close() if '404 Not Found' in contents: continue except (IOError, URLError): # does not exist, failed to load, etc. continue # now check if we find our signature for line in contents.splitlines(): try: id, s = line.split(None, 1) id = int(id) except ValueError: continue if s == sig: result = self.get_id_url(report, id) if not result: # if we can't have an URL, just report as "known" result = '1' return result return None def duplicate_db_fixed(self, id, version): '''Mark given crash ID as fixed in the duplicate database. version specifies the package version the crash was fixed in (None for 'still unfixed'). ''' assert self.duplicate_db, 'init_duplicate_db() needs to be called before' cur = self.duplicate_db.cursor() n = cur.execute('UPDATE crashes SET fixed_version = ?, last_change = CURRENT_TIMESTAMP WHERE crash_id = ?', (version, id)) assert n.rowcount == 1 self.duplicate_db.commit() def duplicate_db_remove(self, id): '''Remove crash from the duplicate database. This happens when a report got rejected or manually duplicated. ''' assert self.duplicate_db, 'init_duplicate_db() needs to be called before' cur = self.duplicate_db.cursor() cur.execute('DELETE FROM crashes WHERE crash_id = ?', [id]) cur.execute('DELETE FROM address_signatures WHERE crash_id = ?', [id]) self.duplicate_db.commit() def duplicate_db_change_master_id(self, old_id, new_id): '''Change a crash ID.''' assert self.duplicate_db, 'init_duplicate_db() needs to be called before' cur = self.duplicate_db.cursor() cur.execute('UPDATE crashes SET crash_id = ?, last_change = CURRENT_TIMESTAMP WHERE crash_id = ?', [new_id, old_id]) cur.execute('UPDATE address_signatures SET crash_id = ? WHERE crash_id = ?', [new_id, old_id]) self.duplicate_db.commit() def duplicate_db_publish(self, dir): '''Create text files suitable for www publishing. Create a number of text files in the given directory which Apport clients can use to determine whether a problem is already reported to the database, through the known() method. This directory is suitable for publishing to the web. The database is indexed by the first two fields of the duplicate or crash signature, to avoid having to download the entire database every time. If the directory already exists, it will be updated. The new content is built in a new directory which is the given one with ".new" appended, then moved to the given name in an almost atomic way. ''' assert self.duplicate_db, 'init_duplicate_db() needs to be called before' # first create the temporary new dir; if that fails, nothing has been # changed and we fail early out = dir + '.new' os.mkdir(out) # crash addresses addr_base = os.path.join(out, 'address') os.mkdir(addr_base) cur_hash = None cur_file = None cur = self.duplicate_db.cursor() cur.execute('SELECT * from address_signatures ORDER BY signature') for (sig, id) in cur.fetchall(): h = self.duplicate_sig_hash(sig) if h is None: # some entries can't be represented in a single line continue if h != cur_hash: cur_hash = h if cur_file: cur_file.close() cur_file = open(os.path.join(addr_base, cur_hash), 'w') cur_file.write('%i %s\n' % (id, sig)) if cur_file: cur_file.close() # duplicate signatures sig_base = os.path.join(out, 'sig') os.mkdir(sig_base) cur_hash = None cur_file = None cur.execute('SELECT signature, crash_id from crashes ORDER BY signature') for (sig, id) in cur.fetchall(): h = self.duplicate_sig_hash(sig) if h is None: # some entries can't be represented in a single line continue if h != cur_hash: cur_hash = h if cur_file: cur_file.close() cur_file = open(os.path.join(sig_base, cur_hash), 'wb') cur_file.write(('%i %s\n' % (id, sig)).encode('UTF-8')) if cur_file: cur_file.close() # switch over tree; this is as atomic as we can be with directories if os.path.exists(dir): os.rename(dir, dir + '.old') os.rename(out, dir) if os.path.exists(dir + '.old'): shutil.rmtree(dir + '.old') def _duplicate_db_upgrade(self, cur_format): '''Upgrade database to current format''' # Format 3 added a primary key which can't be done as an upgrade in # SQLite if cur_format < 3: raise SystemError('Cannot upgrade database from format earlier than 3') cur = self.duplicate_db.cursor() cur.execute('UPDATE version SET format = ?', (cur_format,)) self.duplicate_db.commit() assert cur_format == self.format_version def _duplicate_search_signature(self, sig, id): '''Look up signature in the duplicate db. Return [(id, fixed_version)] tuple list. There might be several matches if a crash has been reintroduced in a later version. The results are sorted so that the highest fixed version comes first, and "unfixed" being the last result. id is the bug we are looking to find a duplicate for. The result will never contain id, to avoid marking a bug as a duplicate of itself if a bug is reprocessed more than once. ''' cur = self.duplicate_db.cursor() cur.execute('SELECT crash_id, fixed_version FROM crashes WHERE signature = ? AND crash_id <> ?', [_u(sig), id]) existing = cur.fetchall() def cmp(x, y): x = x[1] y = y[1] if x == y: return 0 if x == '': if y is None: return -1 else: return 1 if y == '': if x is None: return 1 else: return -1 if x is None: return 1 if y is None: return -1 return apport.packaging.compare_versions(x, y) if sys.version[0] >= '3': existing.sort(key=cmp_to_key(cmp)) else: existing.sort(cmp=cmp) return existing def _duplicate_search_address_signature(self, sig): '''Return ID for crash address signature. Return None if signature is unknown. ''' if not sig: return None cur = self.duplicate_db.cursor() cur.execute('SELECT crash_id FROM address_signatures WHERE signature == ?', [sig]) existing_ids = cur.fetchall() assert len(existing_ids) <= 1 if existing_ids: return existing_ids[0][0] else: return None def _duplicate_db_dump(self, with_timestamps=False): '''Return the entire duplicate database as a dictionary. The returned dictionary maps "signature" to (crash_id, fixed_version) pairs. If with_timestamps is True, then the map will contain triples (crash_id, fixed_version, last_change) instead. This is mainly useful for debugging and test suites. ''' assert self.duplicate_db, 'init_duplicate_db() needs to be called before' dump = {} cur = self.duplicate_db.cursor() cur.execute('SELECT * FROM crashes') for (sig, id, ver, last_change) in cur: if with_timestamps: dump[sig] = (id, ver, last_change) else: dump[sig] = (id, ver) return dump def _duplicate_db_sync_status(self, id): '''Update the duplicate db to the reality of the report in the crash db. This uses get_fixed_version() to get the status of the given crash. An invalid ID gets removed from the duplicate db, and a crash which got fixed is marked as such in the database. ''' assert self.duplicate_db, 'init_duplicate_db() needs to be called before' cur = self.duplicate_db.cursor() cur.execute('SELECT fixed_version FROM crashes WHERE crash_id = ?', [id]) db_fixed_version = cur.fetchone() if not db_fixed_version: return db_fixed_version = db_fixed_version[0] real_fixed_version = self.get_fixed_version(id) # crash got rejected if real_fixed_version == 'invalid': print('DEBUG: bug %i was invalidated, removing from database' % id) self.duplicate_db_remove(id) return # crash got fixed if not db_fixed_version and real_fixed_version: print('DEBUG: bug %i got fixed in version %s, updating database' % (id, real_fixed_version)) self.duplicate_db_fixed(id, real_fixed_version) return # crash got reopened if db_fixed_version and not real_fixed_version: print('DEBUG: bug %i got reopened, dropping fixed version %s from database' % (id, db_fixed_version)) self.duplicate_db_fixed(id, real_fixed_version) return def _duplicate_db_add_address_signature(self, sig, id): # sanity check existing = self._duplicate_search_address_signature(sig) if existing: if existing != id: raise SystemError('ID %i has signature %s, but database already has that signature for ID %i' % ( id, sig, existing)) else: cur = self.duplicate_db.cursor() cur.execute('INSERT INTO address_signatures VALUES (?, ?)', (_u(sig), id)) self.duplicate_db.commit() def _duplicate_db_merge_id(self, dup, master): '''Merge two crash IDs. This is necessary when having to mark a bug as a duplicate if it already is in the duplicate DB. ''' assert self.duplicate_db, 'init_duplicate_db() needs to be called before' cur = self.duplicate_db.cursor() cur.execute('DELETE FROM crashes WHERE crash_id = ?', [dup]) cur.execute('UPDATE address_signatures SET crash_id = ? WHERE crash_id = ?', [master, dup]) self.duplicate_db.commit() @classmethod def duplicate_sig_hash(klass, sig): '''Create a www/URL proof hash for a duplicate signature''' # cannot hash multi-line custom duplicate signatures if '\n' in sig: return None # custom DuplicateSignatures have a free format, split off first word i = sig.split(' ', 1)[0] # standard crash/address signatures use ':' as field separator, usually # for ExecutableName:Signal i = '_'.join(i.split(':', 2)[:2]) # we manually quote '/' to make them nicer to read i = i.replace('/', '_') i = quote_plus(i.encode('UTF-8')) # avoid too long file names i = i[:200] return i # # Abstract functions that need to be implemented by subclasses # def upload(self, report, progress_callback=None): '''Upload given problem report return a handle for it. This should happen noninteractively. If the implementation supports it, and a function progress_callback is passed, that is called repeatedly with two arguments: the number of bytes already sent, and the total number of bytes to send. This can be used to provide a proper upload progress indication on frontends. Implementations ought to "assert self.accepts(report)". The UI logic already prevents uploading a report to a database which does not accept it, but for third-party users of the API this should still be checked. This method can raise a NeedsCredentials exception in case of failure. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_comment_url(self, report, handle): '''Return an URL that should be opened after report has been uploaded and upload() returned handle. Should return None if no URL should be opened (anonymous filing without user comments); in that case this function should do whichever interactive steps it wants to perform. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_id_url(self, report, id): '''Return URL for a given report ID. The report is passed in case building the URL needs additional information from it, such as the SourcePackage name. Return None if URL is not available or cannot be determined. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def download(self, id): '''Download the problem report from given ID and return a Report.''' raise NotImplementedError('this method must be implemented by a concrete subclass') def update(self, id, report, comment, change_description=False, attachment_comment=None, key_filter=None): '''Update the given report ID with all data from report. This creates a text comment with the "short" data (see ProblemReport.write_mime()), and creates attachments for all the bulk/binary data. If change_description is True, and the crash db implementation supports it, the short data will be put into the description instead (like in a new bug). comment will be added to the "short" data. If attachment_comment is given, it will be added to the attachment uploads. If key_filter is a list or set, then only those keys will be added. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def update_traces(self, id, report, comment=''): '''Update the given report ID for retracing results. This updates Stacktrace, ThreadStacktrace, StacktraceTop, and StacktraceSource. You can also supply an additional comment. ''' self.update(id, report, comment, key_filter=[ 'Stacktrace', 'ThreadStacktrace', 'StacktraceSource', 'StacktraceTop']) def set_credentials(self, username, password): '''Set username and password.''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_distro_release(self, id): '''Get 'DistroRelease: <release>' from the report ID.''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_unretraced(self): '''Return set of crash IDs which have not been retraced yet. This should only include crashes which match the current host architecture. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_dup_unchecked(self): '''Return set of crash IDs which need duplicate checking. This is mainly useful for crashes of scripting languages such as Python, since they do not need to be retraced. It should not return bugs that are covered by get_unretraced(). ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_unfixed(self): '''Return an ID set of all crashes which are not yet fixed. The list must not contain bugs which were rejected or duplicate. This function should make sure that the returned list is correct. If there are any errors with connecting to the crash database, it should raise an exception (preferably IOError). ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_fixed_version(self, id): '''Return the package version that fixes a given crash. Return None if the crash is not yet fixed, or an empty string if the crash is fixed, but it cannot be determined by which version. Return 'invalid' if the crash report got invalidated, such as closed a duplicate or rejected. This function should make sure that the returned result is correct. If there are any errors with connecting to the crash database, it should raise an exception (preferably IOError). ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_affected_packages(self, id): '''Return list of affected source packages for given ID.''' raise NotImplementedError('this method must be implemented by a concrete subclass') def is_reporter(self, id): '''Check whether the user is the reporter of given ID.''' raise NotImplementedError('this method must be implemented by a concrete subclass') def can_update(self, id): '''Check whether the user is eligible to update a report. A user should add additional information to an existing ID if (s)he is the reporter or subscribed, the bug is open, not a duplicate, etc. The exact policy and checks should be done according to the particular implementation. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def duplicate_of(self, id): '''Return master ID for a duplicate bug. If the bug is not a duplicate, return None. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def close_duplicate(self, report, id, master): '''Mark a crash id as duplicate of given master ID. If master is None, id gets un-duplicated. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def mark_regression(self, id, master): '''Mark a crash id as reintroducing an earlier crash which is already marked as fixed (having ID 'master').''' raise NotImplementedError('this method must be implemented by a concrete subclass') def mark_retraced(self, id): '''Mark crash id as retraced.''' raise NotImplementedError('this method must be implemented by a concrete subclass') def mark_retrace_failed(self, id, invalid_msg=None): '''Mark crash id as 'failed to retrace'. If invalid_msg is given, the bug should be closed as invalid with given message, otherwise just marked as a failed retrace. This can be a no-op if you are not interested in this. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def _mark_dup_checked(self, id, report): '''Mark crash id as checked for being a duplicate This is an internal method that should not be called from outside. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') # # factory # def get_crashdb(auth_file, name=None, conf=None): '''Return a CrashDatabase object for the given crash db name. This reads the configuration file 'conf'. If name is None, it defaults to the 'default' value in conf. If conf is None, it defaults to the environment variable APPORT_CRASHDB_CONF; if that does not exist, the hardcoded default is /etc/apport/crashdb.conf. This Python syntax file needs to specify: - A string variable 'default', giving a default value for 'name' if that is None. - A dictionary 'databases' which maps names to crash db configuration dictionaries. These need to have at least the key 'impl' (Python module in apport.crashdb_impl which contains a concrete 'CrashDatabase' class implementation for that crash db type). Other generally known options are 'bug_pattern_url', 'dupdb_url', and 'problem_types'. ''' if not conf: conf = os.environ.get('APPORT_CRASHDB_CONF', '/etc/apport/crashdb.conf') settings = {} with open(conf) as f: exec(compile(f.read(), conf, 'exec'), settings) # Load third parties crashdb.conf confdDir = conf + '.d' if os.path.isdir(confdDir): for cf in os.listdir(confdDir): cfpath = os.path.join(confdDir, cf) if os.path.isfile(cfpath) and cf.endswith('.conf'): try: with open(cfpath) as f: exec(compile(f.read(), cfpath, 'exec'), settings['databases']) except Exception as e: # ignore broken files sys.stderr.write('Invalid file %s: %s\n' % (cfpath, str(e))) pass if not name: name = settings['default'] return load_crashdb(auth_file, settings['databases'][name]) def load_crashdb(auth_file, spec): '''Return a CrashDatabase object for a given DB specification. spec is a crash db configuration dictionary as described in get_crashdb(). ''' m = __import__('apport.crashdb_impl.' + spec['impl'], globals(), locals(), ['CrashDatabase']) return m.CrashDatabase(auth_file, spec) class NeedsCredentials(Exception): '''This may be raised when unable to log in to the crashdb.''' pass �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/crashdb_impl/�����������������������������������������������������������������0000775�0000000�0000000�00000000000�14416106601�014005� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/crashdb_impl/__init__.py������������������������������������������������������0000664�0000000�0000000�00000000000�13562354544�016120� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/crashdb_impl/debian.py��������������������������������������������������������0000664�0000000�0000000�00000010322�14416105132�015575� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Debian crash database interface.''' # Debian adaptation Copyright (C) 2012 Ritesh Raj Sarraf <rrs@debian.org> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import smtplib, tempfile from email.mime.text import MIMEText import apport import apport.crashdb class CrashDatabase(apport.crashdb.CrashDatabase): ''' Debian crash database This is a Apport CrashDB implementation for interacting with Debian BTS ''' def __init__(self, auth_file, options): ''' Initialize crash database connection. Debian implementation is pretty basic as most of its bug management processes revolve around the email interface ''' apport.crashdb.CrashDatabase.__init__(self, auth_file, options) self.options = options if not self.options.get('smtphost'): self.options['smtphost'] = 'reportbug.debian.org' if not self.options.get('recipient'): self.options['recipient'] = 'submit@bugs.debian.org' def accepts(self, report): ''' Check if this report can be uploaded to this database. Checks for the proper settings of apport. ''' if not self.options.get('sender') and 'UnreportableReason' not in report: report['UnreportableReason'] = 'Please configure sender settings in /etc/apport/crashdb.conf' # At this time, we are not ready to take CrashDumps if 'Stacktrace' in report and not report.has_useful_stacktrace(): report['UnreportableReason'] = 'Incomplete backtrace. Please install the debug symbol packages' return apport.crashdb.CrashDatabase.accepts(self, report) def upload(self, report, progress_callback=None): '''Upload given problem report return a handle for it. In Debian, we use BTS, which is heavily email oriented This method crafts the bug into an email report understood by Debian BTS ''' # first and foremost, let's check if the apport bug filing settings are set correct assert self.accepts(report) # Frame the report in the format the BTS understands try: (buggyPackage, buggyVersion) = report['Package'].split(' ') except (KeyError, ValueError): return False temp = tempfile.NamedTemporaryFile() temp.file.write(('Package: ' + buggyPackage + '\n').encode('UTF-8')) temp.file.write(('Version: ' + buggyVersion + '\n\n\n').encode('UTF-8')) temp.file.write(('=============================\n\n').encode('UTF-8')) # Let's remove the CoreDump first # Even if we have a valid backtrace, we already are reporting it as text # We don't want to send very large emails to the BTS. # OTOH, if the backtrace is invalid, has_useful_backtrace() will already # deny reporting of the bug report. try: del report['CoreDump'] except KeyError: pass # Now write the apport bug report report.write(temp) temp.file.seek(0) msg = MIMEText(temp.file.read().decode('UTF-8')) msg['Subject'] = report['Title'] msg['From'] = self.options['sender'] msg['To'] = self.options['recipient'] # Subscribe the submitted to the bug report msg.add_header('X-Debbugs-CC', self.options['sender']) msg.add_header('Usertag', 'apport-%s' % report['ProblemType'].lower()) s = smtplib.SMTP(self.options['smtphost']) s.sendmail(self.options['sender'], self.options['recipient'], msg.as_string().encode('UTF-8')) s.quit() def get_comment_url(self, report, handle): ''' Return an URL that should be opened after report has been uploaded and upload() returned handle. Should return None if no URL should be opened (anonymous filing without user comments); in that case this function should do whichever interactive steps it wants to perform. ''' return None ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/crashdb_impl/launchpad.py�����������������������������������������������������0000664�0000000�0000000�00000247225�14416106601�016332� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# vim: set fileencoding=UTF-8 : '''Crash database implementation for Launchpad.''' # Copyright (C) 2007 - 2009 Canonical Ltd. # Authors: Martin Pitt <martin.pitt@ubuntu.com> and Markus Korn <thekorn@gmx.de> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import tempfile, atexit, os.path, re, gzip, sys, email, time, shutil from httplib2 import FailedToDecompressContent from io import BytesIO if sys.version_info.major == 2: from urllib2 import HTTPSHandler, Request, build_opener from httplib import HTTPSConnection from urllib import urlencode, urlopen (HTTPSHandler, Request, build_opener, HTTPSConnection, urlencode, urlopen) # pyflakes _python2 = True else: from urllib.request import HTTPSHandler, Request, build_opener, urlopen from urllib.parse import urlencode from http.client import HTTPSConnection _python2 = False try: from launchpadlib.errors import HTTPError from launchpadlib.launchpad import Launchpad Launchpad # pyflakes except ImportError: # if launchpadlib is not available, only client-side reporting will work Launchpad = None import apport.crashdb import apport default_credentials_path = os.path.expanduser('~/.cache/apport/launchpad.credentials') def filter_filename(attachments): for attachment in attachments: try: f = attachment.data.open() except (HTTPError, FailedToDecompressContent): apport.error('Broken attachment on bug, ignoring') continue name = f.filename if name.endswith('.txt') or name.endswith('.gz'): yield f def id_set(tasks): # same as set(int(i.bug.id) for i in tasks) but faster return set(int(i.self_link.split('/').pop()) for i in tasks) class CrashDatabase(apport.crashdb.CrashDatabase): '''Launchpad implementation of crash database interface.''' def __init__(self, auth, options): '''Initialize Launchpad crash database. You need to specify a launchpadlib-style credentials file to access launchpad. If you supply None, it will use default_credentials_path (~/.cache/apport/launchpad.credentials). Recognized options are: - distro: Name of the distribution in Launchpad - project: Name of the project in Launchpad (Note that exactly one of "distro" or "project" must be given.) - launchpad_instance: If set, this uses the given launchpad instance instead of production (optional). This can be overriden or set by $APPORT_LAUNCHPAD_INSTANCE environment. - cache_dir: Path to a permanent cache directory; by default it uses a temporary one. (optional). This can be overridden or set by $APPORT_LAUNCHPAD_CACHE environment. - escalation_subscription: This subscribes the given person or team to a bug once it gets the 10th duplicate. - escalation_tag: This adds the given tag to a bug once it gets more than 10 duplicates. - initial_subscriber: The Launchpad user which gets subscribed to newly filed bugs (default: "apport"). It should be a bot user which the crash-digger instance runs as, as this will get to see all bug details immediately. - triaging_team: The Launchpad user/team which gets subscribed after updating a crash report bug by the retracer (default: "ubuntu-crashes-universe") - architecture: If set, this sets and watches out for needs-*-retrace tags of this architecture. This is useful when being used with apport-retrace and crash-digger to process crash reports of foreign architectures. Defaults to system architecture. ''' if os.getenv('APPORT_LAUNCHPAD_INSTANCE'): options['launchpad_instance'] = os.getenv( 'APPORT_LAUNCHPAD_INSTANCE') if not auth: lp_instance = options.get('launchpad_instance') if lp_instance: auth = default_credentials_path + '.' + lp_instance.split('://', 1)[-1] else: auth = default_credentials_path apport.crashdb.CrashDatabase.__init__(self, auth, options) self.distro = options.get('distro') if self.distro: assert 'project' not in options, 'Must not set both "project" and "distro" option' else: assert 'project' in options, 'Need to have either "project" or "distro" option' if 'architecture' in options: self.arch_tag = 'need-%s-retrace' % options['architecture'] else: self.arch_tag = 'need-%s-retrace' % apport.packaging.get_system_architecture() self.options = options self.auth = auth assert self.auth self.__launchpad = None self.__lp_distro = None self.__lpcache = os.getenv('APPORT_LAUNCHPAD_CACHE', options.get('cache_dir')) if not self.__lpcache: # use a temporary dir self.__lpcache = tempfile.mkdtemp(prefix='launchpadlib.cache.') atexit.register(shutil.rmtree, self.__lpcache, ignore_errors=True) @property def launchpad(self): '''Return Launchpad instance.''' if self.__launchpad: return self.__launchpad if Launchpad is None: if _python2: sys.stderr.write('ERROR: The python-launchpadlib package is not installed. This functionality is not available.\n') else: sys.stderr.write('ERROR: The python3-launchpadlib package is not installed. This functionality is not available.\n') sys.exit(1) if self.options.get('launchpad_instance'): launchpad_instance = self.options.get('launchpad_instance') else: launchpad_instance = 'production' auth_dir = os.path.dirname(self.auth) if auth_dir and not os.path.isdir(auth_dir): os.makedirs(auth_dir) try: self.__launchpad = Launchpad.login_with('apport-collect', launchpad_instance, launchpadlib_dir=self.__lpcache, allow_access_levels=['WRITE_PRIVATE'], credentials_file=self.auth, version='1.0') except Exception as e: if hasattr(e, 'content'): msg = e.content else: msg = str(e) apport.error('connecting to Launchpad failed: %s\nYou can reset the credentials by removing the file "%s"', msg, self.auth) sys.exit(99) # transient error return self.__launchpad def _get_distro_tasks(self, tasks): if not self.distro: raise StopIteration for t in tasks: if t.bug_target_name.lower() == self.distro or \ re.match(r'^.+\(%s.*\)$' % self.distro, t.bug_target_name.lower()): yield t @property def lp_distro(self): if self.__lp_distro is None: if self.distro: self.__lp_distro = self.launchpad.distributions[self.distro] elif 'project' in self.options: self.__lp_distro = self.launchpad.projects[self.options['project']] else: raise SystemError('distro or project needs to be specified in crashdb options') return self.__lp_distro def upload(self, report, progress_callback=None): '''Upload given problem report return a handle for it. This should happen noninteractively. If the implementation supports it, and a function progress_callback is passed, that is called repeatedly with two arguments: the number of bytes already sent, and the total number of bytes to send. This can be used to provide a proper upload progress indication on frontends. ''' assert self.accepts(report) blob_file = self._generate_upload_blob(report) ticket = upload_blob(blob_file, progress_callback, hostname=self.get_hostname()) blob_file.close() assert ticket return ticket def get_hostname(self): '''Return the hostname for the Launchpad instance.''' launchpad_instance = self.options.get('launchpad_instance') if launchpad_instance: if launchpad_instance == 'staging': hostname = 'staging.launchpad.net' else: hostname = 'launchpad.dev' else: hostname = 'launchpad.net' return hostname def get_comment_url(self, report, handle): '''Return an URL that should be opened after report has been uploaded and upload() returned handle. Should return None if no URL should be opened (anonymous filing without user comments); in that case this function should do whichever interactive steps it wants to perform.''' args = {} title = report.get('Title', report.standard_title()) if title: # always use UTF-8 encoding, urlencode() blows up otherwise in # python 2.7 if not isinstance(title, bytes): title = title.encode('UTF-8') args['field.title'] = title hostname = self.get_hostname() if 'SnapSource' in report: project = report['SnapSource'] else: project = self.options.get('project') if not project: if 'SourcePackage' in report: return 'https://bugs.%s/%s/+source/%s/+filebug/%s?%s' % ( hostname, self.distro, report['SourcePackage'], handle, urlencode(args)) else: return 'https://bugs.%s/%s/+filebug/%s?%s' % ( hostname, self.distro, handle, urlencode(args)) else: return 'https://bugs.%s/%s/+filebug/%s?%s' % ( hostname, project, handle, urlencode(args)) def get_id_url(self, report, id): '''Return URL for a given report ID. The report is passed in case building the URL needs additional information from it, such as the SourcePackage name. Return None if URL is not available or cannot be determined. ''' return 'https://bugs.launchpad.net/bugs/' + str(id) def download(self, id): '''Download the problem report from given ID and return a Report.''' report = apport.Report() b = self.launchpad.bugs[id] # parse out fields from summary m = re.search(r'(ProblemType:.*)$', b.description, re.S) if not m: m = re.search(r'^--- \r?$[\r\n]*(.*)', b.description, re.M | re.S) assert m, 'bug description must contain standard apport format data' description = m.group(1).encode('UTF-8').replace(b'\xc2\xa0', b' ').replace(b'\r\n', b'\n') if b'\n\n' in description: # this often happens, remove all empty lines between top and # 'Uname' if b'Uname:' in description: # this will take care of bugs like LP #315728 where stuff # is added after the apport data (part1, part2) = description.split(b'Uname:', 1) description = part1.replace(b'\n\n', b'\n') + b'Uname:' \ + part2.split(b'\n\n', 1)[0] else: # just parse out the Apport block; e. g. LP #269539 description = description.split(b'\n\n', 1)[0] report.load(BytesIO(description)) if 'Date' not in report: # We had not submitted this field for a while, claiming it # redundant. But it is indeed required for up-to-the-minute # comparison with log files, etc. For backwards compatibility with # those reported bugs, read the creation date try: report['Date'] = b.date_created.ctime() except AttributeError: # support older wadllib API which returned strings report['Date'] = b.date_created if 'ProblemType' not in report: if 'apport-bug' in b.tags: report['ProblemType'] = 'Bug' elif 'apport-crash' in b.tags: report['ProblemType'] = 'Crash' elif 'apport-kernelcrash' in b.tags: report['ProblemType'] = 'KernelCrash' elif 'apport-package' in b.tags: report['ProblemType'] = 'Package' else: raise ValueError('cannot determine ProblemType from tags: ' + str(b.tags)) report['Tags'] = ' '.join(b.tags) if 'Title' in report: report['OriginalTitle'] = report['Title'] report['Title'] = b.title for attachment in filter_filename(b.attachments): key, ext = os.path.splitext(attachment.filename) # ignore attachments with invalid keys try: report[key] = '' except Exception: continue if ext == '.txt': report[key] = attachment.read() try: report[key] = report[key].decode('UTF-8') except UnicodeDecodeError: pass elif ext == '.gz': try: report[key] = gzip.GzipFile(fileobj=attachment).read() except IOError as e: # some attachments are only called .gz, but are # uncompressed (LP #574360) if 'Not a gzip' not in str(e): raise attachment.seek(0) report[key] = attachment.read() else: raise Exception('Unknown attachment type: ' + attachment.filename) return report def update(self, id, report, comment, change_description=False, attachment_comment=None, key_filter=None): '''Update the given report ID with all data from report. This creates a text comment with the "short" data (see ProblemReport.write_mime()), and creates attachments for all the bulk/binary data. If change_description is True, and the crash db implementation supports it, the short data will be put into the description instead (like in a new bug). comment will be added to the "short" data. If attachment_comment is given, it will be added to the attachment uploads. If key_filter is a list or set, then only those keys will be added. ''' bug = self.launchpad.bugs[id] # TODO: raise an error if key_filter is not a list or set if key_filter: skip_keys = set(report.keys()) - set(key_filter) else: skip_keys = None # we want to reuse the knowledge of write_mime() with all its different input # types and output formatting; however, we have to dissect the mime ourselves, # since we can't just upload it as a blob mime = tempfile.TemporaryFile() report.write_mime(mime, skip_keys=skip_keys) mime.flush() mime.seek(0) if _python2: msg = email.message_from_file(mime) else: msg = email.message_from_binary_file(mime) msg_iter = msg.walk() # first part is the multipart container part = _python2 and msg_iter.next() or msg_iter.__next__() assert part.is_multipart() # second part should be an inline text/plain attachments with all short # fields part = _python2 and msg_iter.next() or msg_iter.__next__() assert not part.is_multipart() assert part.get_content_type() == 'text/plain' if not key_filter: # when we update a complete report, we are updating an existing bug # with apport-collect x = bug.tags[:] # LP#254901 workaround x.append('apport-collected') # add any tags (like the release) to the bug if 'Tags' in report: x += self._filter_tag_names(report['Tags']).split() bug.tags = x bug.lp_save() bug = self.launchpad.bugs[id] # fresh bug object, LP#336866 workaround # short text data text = part.get_payload(decode=True).decode('UTF-8', 'replace') # text can be empty if you are only adding an attachment to a bug if text: if change_description: bug.description = bug.description + '\n--- \n' + text bug.lp_save() else: if not comment: comment = bug.title bug.newMessage(content=text, subject=comment) # other parts are the attachments: for part in msg_iter: # print ' attachment: %s...' % part.get_filename() bug.addAttachment(comment=attachment_comment or '', description=part.get_filename(), content_type=None, data=part.get_payload(decode=True), filename=part.get_filename(), is_patch=False) mime.close() def update_traces(self, id, report, comment=''): '''Update the given report ID for retracing results. This updates Stacktrace, ThreadStacktrace, StacktraceTop, and StacktraceSource. You can also supply an additional comment. ''' apport.crashdb.CrashDatabase.update_traces(self, id, report, comment) bug = self.launchpad.bugs[id] # ensure it's assigned to a package if 'SourcePackage' in report: for task in bug.bug_tasks: if task.target.resource_type_link.endswith('#distribution'): task.target = self.lp_distro.getSourcePackage(name=report['SourcePackage']) task.lp_save() bug = self.launchpad.bugs[id] break # remove core dump if stack trace is usable if report.has_useful_stacktrace(): for a in bug.attachments: if a.title == 'CoreDump.gz': try: a.removeFromBug() except HTTPError: pass # LP#249950 workaround try: task = self._get_distro_tasks(bug.bug_tasks) if _python2: task = task.next() else: task = task.__next__() if task.importance == 'Undecided': task.importance = 'Medium' task.lp_save() except StopIteration: pass # no distro tasks # update bug title with retraced function name fn = report.stacktrace_top_function() if fn: m = re.match(r'^(.*crashed with SIG.* in )([^( ]+)(\(\).*$)', bug.title) if m and m.group(2) != fn: bug.title = m.group(1) + fn + m.group(3) try: bug.lp_save() except HTTPError: pass # LP#336866 workaround bug = self.launchpad.bugs[id] self._subscribe_triaging_team(bug, report) def get_distro_release(self, id): '''Get 'DistroRelease: <release>' from the given report ID and return it.''' bug = self.launchpad.bugs[id] m = re.search('DistroRelease: ([-a-zA-Z0-9.+/ ]+)', bug.description) if m: return m.group(1) raise ValueError('URL does not contain DistroRelease: field') def get_affected_packages(self, id): '''Return list of affected source packages for given ID.''' bug_target_re = re.compile( r'/%s/(?:(?P<suite>[^/]+)/)?\+source/(?P<source>[^/]+)$' % self.distro) bug = self.launchpad.bugs[id] result = [] for task in bug.bug_tasks: match = bug_target_re.search(task.target.self_link) if not match: continue if task.status in ('Invalid', "Won't Fix", 'Fix Released'): continue result.append(match.group('source')) return result def is_reporter(self, id): '''Check whether the user is the reporter of given ID.''' bug = self.launchpad.bugs[id] return bug.owner.name == self.launchpad.me.name def can_update(self, id): '''Check whether the user is eligible to update a report. A user should add additional information to an existing ID if (s)he is the reporter or subscribed, the bug is open, not a duplicate, etc. The exact policy and checks should be done according to the particular implementation. ''' bug = self.launchpad.bugs[id] if bug.duplicate_of: return False if bug.owner.name == self.launchpad.me.name: return True # check subscription me = self.launchpad.me.self_link for sub in bug.subscriptions.entries: if sub['person_link'] == me: return True return False def get_unretraced(self): '''Return an ID set of all crashes which have not been retraced yet and which happened on the current host architecture.''' try: bugs = self.lp_distro.searchTasks(tags=self.arch_tag, created_since='2011-08-01') return id_set(bugs) except Exception as e: apport.error('connecting to Launchpad failed: %s', str(e)) sys.exit(99) # transient error def get_dup_unchecked(self): '''Return an ID set of all crashes which have not been checked for being a duplicate. This is mainly useful for crashes of scripting languages such as Python, since they do not need to be retraced. It should not return bugs that are covered by get_unretraced().''' try: bugs = self.lp_distro.searchTasks(tags='need-duplicate-check', created_since='2011-08-01') return id_set(bugs) except Exception as e: apport.error('connecting to Launchpad failed: %s', str(e)) sys.exit(99) # transient error def get_unfixed(self): '''Return an ID set of all crashes which are not yet fixed. The list must not contain bugs which were rejected or duplicate. This function should make sure that the returned list is correct. If there are any errors with connecting to the crash database, it should raise an exception (preferably IOError).''' bugs = self.lp_distro.searchTasks(tags='apport-crash') return id_set(bugs) def _get_source_version(self, package): '''Return the version of given source package in the latest release of given distribution. If 'distro' is None, we will look for a launchpad project . ''' sources = self.lp_distro.main_archive.getPublishedSources( exact_match=True, source_name=package, distro_series=self.lp_distro.current_series ) # first element is the latest one return sources[0].source_package_version def get_fixed_version(self, id): '''Return the package version that fixes a given crash. Return None if the crash is not yet fixed, or an empty string if the crash is fixed, but it cannot be determined by which version. Return 'invalid' if the crash report got invalidated, such as closed a duplicate or rejected. This function should make sure that the returned result is correct. If there are any errors with connecting to the crash database, it should raise an exception (preferably IOError). ''' # do not do version tracking yet; for that, we need to get the current # distrorelease and the current package version in that distrorelease # (or, of course, proper version tracking in Launchpad itself) try: b = self.launchpad.bugs[id] except KeyError: return 'invalid' if b.duplicate_of: return 'invalid' tasks = list(b.bug_tasks) # just fetch it once if self.distro: distro_identifier = '(%s)' % self.distro.lower() fixed_tasks = list(filter(lambda task: task.status == 'Fix Released' and distro_identifier in task.bug_target_display_name.lower(), tasks)) if not fixed_tasks: fixed_distro = list(filter(lambda task: task.status == 'Fix Released' and task.bug_target_name.lower() == self.distro.lower(), tasks)) if fixed_distro: # fixed in distro inself (without source package) return '' if len(fixed_tasks) > 1: apport.warning('There is more than one task fixed in %s %s, using first one to determine fixed version', self.distro, id) return '' if fixed_tasks: task = fixed_tasks.pop() try: return self._get_source_version(task.bug_target_display_name.split()[0]) except IndexError: # source does not exist any more return 'invalid' else: # check if there only invalid ones invalid_tasks = list(filter(lambda task: task.status in ('Invalid', "Won't Fix", 'Expired') and distro_identifier in task.bug_target_display_name.lower(), tasks)) if invalid_tasks: non_invalid_tasks = list(filter( lambda task: task.status not in ('Invalid', "Won't Fix", 'Expired') and distro_identifier in task.bug_target_display_name.lower(), tasks)) if not non_invalid_tasks: return 'invalid' else: fixed_tasks = list(filter(lambda task: task.status == 'Fix Released', tasks)) if fixed_tasks: # TODO: look for current series return '' # check if there any invalid ones if list(filter(lambda task: task.status == 'Invalid', tasks)): return 'invalid' return None def duplicate_of(self, id): '''Return master ID for a duplicate bug. If the bug is not a duplicate, return None. ''' b = self.launchpad.bugs[id].duplicate_of if b: return b.id else: return None def close_duplicate(self, report, id, master_id): '''Mark a crash id as duplicate of given master ID. If master is None, id gets un-duplicated. ''' bug = self.launchpad.bugs[id] if master_id: assert id != master_id, 'cannot mark bug %s as a duplicate of itself' % str(id) # check whether the master itself is a dup master = self.launchpad.bugs[master_id] if master.duplicate_of: master = master.duplicate_of master_id = master.id if master.id == id: # this happens if the bug was manually duped to a newer one apport.warning('Bug %i was manually marked as a dupe of newer bug %i, not closing as duplicate', id, master_id) return for a in bug.attachments: if a.title in ('CoreDump.gz', 'Stacktrace.txt', 'ThreadStacktrace.txt', 'ProcMaps.txt', 'ProcStatus.txt', 'Registers.txt', 'Disassembly.txt'): try: a.removeFromBug() except HTTPError: pass # LP#249950 workaround bug = self.launchpad.bugs[id] # fresh bug object, LP#336866 workaround bug.newMessage(content='Thank you for taking the time to report this crash and helping \ to make this software better. This particular crash has already been reported and \ is a duplicate of bug #%i, so is being marked as such. Please look at the \ other bug report to see if there is any missing information that you can \ provide, or to see if there is a workaround for the bug. Additionally, any \ further discussion regarding the bug should occur in the other report. \ Please continue to report any other bugs you may find.' % master_id, subject='This bug is a duplicate') bug = self.launchpad.bugs[id] # refresh, LP#336866 workaround if bug.private: bug.private = False # set duplicate last, since we cannot modify already dup'ed bugs if not bug.duplicate_of: bug.duplicate_of = master # cache tags of master bug report instead of performing multiple # queries master_tags = master.tags if len(master.duplicates) == 10: if 'escalation_tag' in self.options and self.options['escalation_tag'] not in master_tags and self.options.get('escalated_tag', ' invalid ') not in master_tags: master.tags = master_tags + [self.options['escalation_tag']] # LP#254901 workaround master.lp_save() if 'escalation_subscription' in self.options and self.options.get('escalated_tag', ' invalid ') not in master_tags: p = self.launchpad.people[self.options['escalation_subscription']] master.subscribe(person=p) # requesting updated stack trace? if report.has_useful_stacktrace() and ('apport-request-retrace' in master_tags or 'apport-failed-retrace' in master_tags): self.update(master_id, report, 'Updated stack trace from duplicate bug %i' % id, key_filter=['Stacktrace', 'ThreadStacktrace', 'Package', 'Dependencies', 'ProcMaps', 'ProcCmdline']) master = self.launchpad.bugs[master_id] x = master.tags[:] # LP#254901 workaround try: x.remove('apport-failed-retrace') except ValueError: pass try: x.remove('apport-request-retrace') except ValueError: pass master.tags = x try: master.lp_save() except HTTPError: pass # LP#336866 workaround # white list of tags to copy from duplicates bugs to the master tags_to_copy = ['bugpattern-needed'] for series in self.lp_distro.series: if series.status not in ['Active Development', 'Current Stable Release', 'Supported', 'Pre-release Freeze']: continue tags_to_copy.append(series.name) # copy tags over from the duplicate bug to the master bug dupe_tags = set(bug.tags) # reload master tags as they may have changed master_tags = master.tags missing_tags = dupe_tags.difference(master_tags) for tag in missing_tags: if tag in tags_to_copy: master_tags.append(tag) master.tags = master_tags master.lp_save() else: if bug.duplicate_of: bug.duplicate_of = None if bug._dirty_attributes: # LP#336866 workaround bug.lp_save() def mark_regression(self, id, master): '''Mark a crash id as reintroducing an earlier crash which is already marked as fixed (having ID 'master').''' bug = self.launchpad.bugs[id] bug.newMessage(content='This crash has the same stack trace characteristics as bug #%i. \ However, the latter was already fixed in an earlier package version than the \ one in this report. This might be a regression or because the problem is \ in a dependent package.' % master, subject='Possible regression detected') bug = self.launchpad.bugs[id] # fresh bug object, LP#336866 workaround bug.tags = bug.tags + ['regression-retracer'] # LP#254901 workaround bug.lp_save() def mark_retraced(self, id): '''Mark crash id as retraced.''' bug = self.launchpad.bugs[id] if self.arch_tag in bug.tags: x = bug.tags[:] # LP#254901 workaround x.remove(self.arch_tag) bug.tags = x try: bug.lp_save() except HTTPError: pass # LP#336866 workaround def mark_retrace_failed(self, id, invalid_msg=None): '''Mark crash id as 'failed to retrace'.''' bug = self.launchpad.bugs[id] if invalid_msg: try: task = self._get_distro_tasks(bug.bug_tasks) if _python2: task = task.next() else: task = task.__next__() except StopIteration: # no distro task, just use the first one task = bug.bug_tasks[0] task.status = 'Invalid' task.lp_save() bug.newMessage(content=invalid_msg, subject='Crash report cannot be processed') for a in bug.attachments: if a.title == 'CoreDump.gz': try: a.removeFromBug() except HTTPError: pass # LP#249950 workaround else: if 'apport-failed-retrace' not in bug.tags: bug.tags = bug.tags + ['apport-failed-retrace'] # LP#254901 workaround bug.lp_save() def _mark_dup_checked(self, id, report): '''Mark crash id as checked for being a duplicate.''' bug = self.launchpad.bugs[id] # if we have a distro task without a package, fix it if 'SourcePackage' in report: for task in bug.bug_tasks: if task.target.resource_type_link.endswith('#distribution'): task.target = self.lp_distro.getSourcePackage( name=report['SourcePackage']) try: task.lp_save() bug = self.launchpad.bugs[id] except HTTPError: # might fail if there is already another Ubuntu package task pass break if 'need-duplicate-check' in bug.tags: x = bug.tags[:] # LP#254901 workaround x.remove('need-duplicate-check') bug.tags = x bug.lp_save() if 'Traceback' in report: for task in bug.bug_tasks: if '#distribution' in task.target.resource_type_link: if task.importance == 'Undecided': task.importance = 'Medium' task.lp_save() self._subscribe_triaging_team(bug, report) def known(self, report): '''Check if the crash db already knows about the crash signature. Check if the report has a DuplicateSignature, crash_signature(), or StacktraceAddressSignature, and ask the database whether the problem is already known. If so, return an URL where the user can check the status or subscribe (if available), or just return True if the report is known but there is no public URL. In that case the report will not be uploaded (i. e. upload() will not be called). Return None if the report does not have any signature or the crash database does not support checking for duplicates on the client side. The default implementation uses a text file format generated by duplicate_db_publish() at an URL specified by the "dupdb_url" option. Subclasses are free to override this with a custom implementation, such as a real database lookup. ''' # we override the method here to check if the user actually has access # to the bug, and if the bug requests more retraces; in either case we # should file it. url = apport.crashdb.CrashDatabase.known(self, report) if not url: return url # record the fact that it is a duplicate, for triagers report['DuplicateOf'] = url try: f = urlopen(url + '/+text') except IOError: # if we are offline, or LP is down, upload will fail anyway, so we # can just as well avoid the upload return url line = f.readline() if not line.startswith(b'bug:'): # presumably a 404 etc. page, which happens for private bugs return True # check tags for line in f: if line.startswith(b'tags:'): if b'apport-failed-retrace' in line or b'apport-request-retrace' in line: return None else: break # stop at the first task, tags are in the first block if not line.strip(): break return url def _subscribe_triaging_team(self, bug, report): '''Subscribe the right triaging team to the bug.''' # FIXME: this entire function is an ugly Ubuntu specific hack until LP # gets a real crash db; see https://wiki.ubuntu.com/CrashReporting if 'DistroRelease' in report and report['DistroRelease'].split()[0] != 'Ubuntu': return # only Ubuntu bugs are filed private # use a url hack here, it is faster person = '%s~%s' % (self.launchpad._root_uri, self.options.get('triaging_team', 'ubuntu-crashes-universe')) if not person.replace(str(self.launchpad._root_uri), '').strip('~') \ in [str(sub).split('/')[-1] for sub in bug.subscriptions]: bug.subscribe(person=person) def _generate_upload_blob(self, report): '''Generate a multipart/MIME temporary file for uploading. You have to close the returned file object after you are done with it. ''' # set reprocessing tags hdr = {} hdr['Tags'] = 'apport-%s' % report['ProblemType'].lower() a = report.get('PackageArchitecture') if not a or a == 'all': a = report.get('Architecture') if a: hdr['Tags'] += ' ' + a if 'Tags' in report: hdr['Tags'] += ' ' + self._filter_tag_names(report['Tags']) # privacy/retracing for distro reports # FIXME: ugly hack until LP has a real crash db if 'DistroRelease' in report: if a and ('VmCore' in report or 'CoreDump' in report or 'LaunchpadPrivate' in report): hdr['Private'] = 'yes' hdr['Subscribers'] = report.get('LaunchpadSubscribe', self.options.get('initial_subscriber', 'apport')) hdr['Tags'] += ' need-%s-retrace' % a elif 'Traceback' in report: hdr['Private'] = 'yes' hdr['Subscribers'] = 'apport' hdr['Tags'] += ' need-duplicate-check' if 'DuplicateSignature' in report and 'need-duplicate-check' not in hdr['Tags']: hdr['Tags'] += ' need-duplicate-check' # if we have checkbox submission key, link it to the bug; keep text # reference until the link is shown in Launchpad's UI if 'CheckboxSubmission' in report: hdr['HWDB-Submission'] = report['CheckboxSubmission'] # order in which keys should appear in the temporary file order = ['ProblemType', 'DistroRelease', 'Package', 'Regression', 'Reproducible', 'TestedUpstream', 'ProcVersionSignature', 'Uname', 'NonfreeKernelModules'] # write MIME/Multipart version into temporary file mime = tempfile.TemporaryFile() report.write_mime(mime, extra_headers=hdr, skip_keys=['Tags', 'LaunchpadPrivate', 'LaunchpadSubscribe'], priority_fields=order) mime.flush() mime.seek(0) return mime @classmethod def _filter_tag_names(klass, tags): '''Replace characters from tags which are not palatable to Launchpad''' res = '' for ch in tags.lower().encode('ASCII', errors='ignore'): if ch in b'abcdefghijklmnopqrstuvwxyz0123456789 ' or (len(res) > 0 and ch in b'+-.'): if _python2: res += ch else: res += chr(ch) else: res += '.' return res # # Launchpad storeblob API (should go into launchpadlib, see LP #315358) # _https_upload_callback = None # # This progress code is based on KodakLoader by Jason Hildebrand # <jason@opensky.ca>. See http://www.opensky.ca/~jdhildeb/software/kodakloader/ # for details. class HTTPSProgressConnection(HTTPSConnection): '''Implement a HTTPSConnection with an optional callback function for upload progress.''' def send(self, data): global _https_upload_callback # if callback has not been set, call the old method if not _https_upload_callback: HTTPSConnection.send(self, data) return sent = 0 total = len(data) chunksize = 1024 while sent < total: _https_upload_callback(sent, total) t1 = time.time() HTTPSConnection.send(self, data[sent:(sent + chunksize)]) sent += chunksize t2 = time.time() # adjust chunksize so that it takes between .5 and 2 # seconds to send a chunk if chunksize > 1024: if t2 - t1 < .5: chunksize <<= 1 elif t2 - t1 > 2: chunksize >>= 1 class HTTPSProgressHandler(HTTPSHandler): def https_open(self, req): return self.do_open(HTTPSProgressConnection, req) def upload_blob(blob, progress_callback=None, hostname='launchpad.net'): '''Upload blob (file-like object) to Launchpad. progress_callback can be set to a function(sent, total) which is regularly called with the number of bytes already sent and total number of bytes to send. It is called every 0.5 to 2 seconds (dynamically adapted to upload bandwidth). Return None on error, or the ticket number on success. By default this uses the production Launchpad hostname. Set hostname to 'launchpad.dev' or 'staging.launchpad.net' to use another instance for testing. ''' ticket = None url = 'https://%s/+storeblob' % hostname global _https_upload_callback _https_upload_callback = progress_callback # build the form-data multipart/MIME request data = email.mime.multipart.MIMEMultipart() submit = email.mime.text.MIMEText('1') submit.add_header('Content-Disposition', 'form-data; name="FORM_SUBMIT"') data.attach(submit) form_blob = email.mime.base.MIMEBase('application', 'octet-stream') form_blob.add_header('Content-Disposition', 'form-data; name="field.blob"; filename="x"') form_blob.set_payload(blob.read().decode('ascii')) data.attach(form_blob) data_flat = BytesIO() if sys.version_info.major == 2: gen = email.generator.Generator(data_flat, mangle_from_=False) else: gen = email.generator.BytesGenerator(data_flat, mangle_from_=False) gen.flatten(data) # do the request; we need to explicitly set the content type here, as it # defaults to x-www-form-urlencoded req = Request(url, data_flat.getvalue()) req.add_header('Content-Type', 'multipart/form-data; boundary=' + data.get_boundary()) opener = build_opener(HTTPSProgressHandler) result = opener.open(req) ticket = result.info().get('X-Launchpad-Blob-Token') assert ticket return ticket # # Unit tests # if __name__ == '__main__': import unittest, subprocess from unittest.mock import patch crashdb = None _segv_report = None _python_report = None _uncommon_description_report = None class _T(unittest.TestCase): # this assumes that a source package 'coreutils' exists and builds a # binary package 'coreutils' test_package = 'coreutils' test_srcpackage = 'coreutils' # # Generic tests, should work for all CrashDB implementations # def setUp(self): global crashdb if not crashdb: crashdb = self._get_instance() self.crashdb = crashdb # create a local reference report so that we can compare # DistroRelease, Architecture, etc. self.ref_report = apport.Report() self.ref_report.add_os_info() self.ref_report.add_user_info() self.ref_report['SourcePackage'] = 'coreutils' # Objects tests rely on. self._create_project('langpack-o-matic') def _create_project(self, name): '''Create a project using launchpadlib to be used by tests.''' project = self.crashdb.launchpad.projects[name] if not project: self.crashdb.launchpad.projects.new_project( description=name + 'description', display_name=name, name=name, summary=name + 'summary', title=name + 'title') @property def hostname(self): '''Get the Launchpad hostname for the given crashdb.''' return self.crashdb.get_hostname() def get_segv_report(self, force_fresh=False): '''Generate SEGV crash report. This is only done once, subsequent calls will return the already existing ID, unless force_fresh is True. Return the ID. ''' global _segv_report if not force_fresh and _segv_report is not None: return _segv_report r = self._generate_sigsegv_report() r.add_package_info(self.test_package) r.add_os_info() r.add_gdb_info() r.add_user_info() self.assertEqual(r.standard_title(), 'crash crashed with SIGSEGV in f()') # add some binary gibberish which isn't UTF-8 r['ShortGibberish'] = ' "]\xb6"\n' r['LongGibberish'] = 'a\nb\nc\nd\ne\n\xff\xff\xff\n\f' # create a bug for the report bug_target = self._get_bug_target(self.crashdb, r) self.assertTrue(bug_target) id = self._file_bug(bug_target, r) self.assertTrue(id > 0) sys.stderr.write('(Created SEGV report: https://%s/bugs/%i) ' % (self.hostname, id)) if not force_fresh: _segv_report = id return id def get_python_report(self): '''Generate Python crash report. Return the ID. ''' global _python_report if _python_report is not None: return _python_report r = apport.Report('Crash') r['ExecutablePath'] = '/bin/foo' r['Traceback'] = '''Traceback (most recent call last): File "/bin/foo", line 67, in fuzz print(weird) NameError: global name 'weird' is not defined''' r['Tags'] = 'boogus pybogus' r.add_package_info(self.test_package) r.add_os_info() r.add_user_info() self.assertEqual(r.standard_title(), "foo crashed with NameError in fuzz(): global name 'weird' is not defined") bug_target = self._get_bug_target(self.crashdb, r) self.assertTrue(bug_target) id = self._file_bug(bug_target, r) self.assertTrue(id > 0) sys.stderr.write('(Created Python report: https://%s/bugs/%i) ' % (self.hostname, id)) _python_report = id return id def get_uncommon_description_report(self, force_fresh=False): '''File a bug report with an uncommon description. This is only done once, subsequent calls will return the already existing ID, unless force_fresh is True. Example taken from real LP bug 269539. It contains only ProblemType/Architecture/DistroRelease in the description, and has free-form description text after the Apport data. Return the ID. ''' global _uncommon_description_report if not force_fresh and _uncommon_description_report is not None: return _uncommon_description_report desc = '''problem ProblemType: Package Architecture: amd64 DistroRelease: Ubuntu 8.10 more text and more ''' bug = self.crashdb.launchpad.bugs.createBug( title='mixed description bug', description=desc, target=self.crashdb.lp_distro) sys.stderr.write('(Created uncommon description: https://%s/bugs/%i) ' % (self.hostname, bug.id)) if not force_fresh: _uncommon_description_report = bug.id return bug.id def test_1_download(self): '''download()''' r = self.crashdb.download(self.get_segv_report()) self.assertEqual(r['ProblemType'], 'Crash') self.assertEqual(r['Title'], 'crash crashed with SIGSEGV in f()') self.assertEqual(r['DistroRelease'], self.ref_report['DistroRelease']) self.assertEqual(r['Architecture'], self.ref_report['Architecture']) self.assertEqual(r['Uname'], self.ref_report['Uname']) self.assertEqual(r.get('NonfreeKernelModules'), self.ref_report.get('NonfreeKernelModules')) self.assertEqual(r.get('UserGroups'), self.ref_report.get('UserGroups')) tags = set(r['Tags'].split()) self.assertEqual(tags, set([self.crashdb.arch_tag, 'apport-crash', apport.packaging.get_system_architecture()])) self.assertEqual(r['Signal'], '11') self.assertTrue(r['ExecutablePath'].endswith('/crash')) self.assertEqual(r['SourcePackage'], self.test_srcpackage) self.assertTrue(r['Package'].startswith(self.test_package + ' ')) self.assertIn('f (x=42)', r['Stacktrace']) self.assertIn('f (x=42)', r['StacktraceTop']) self.assertIn('f (x=42)', r['ThreadStacktrace']) self.assertGreater(len(r['CoreDump']), 1000) self.assertIn('Dependencies', r) self.assertIn('Disassembly', r) self.assertIn('Registers', r) # check tags r = self.crashdb.download(self.get_python_report()) tags = set(r['Tags'].split()) self.assertEqual(tags, set(['apport-crash', 'boogus', 'pybogus', 'need-duplicate-check', apport.packaging.get_system_architecture()])) def test_2_update_traces(self): '''update_traces()''' r = self.crashdb.download(self.get_segv_report()) self.assertIn('CoreDump', r) self.assertIn('Dependencies', r) self.assertIn('Disassembly', r) self.assertIn('Registers', r) self.assertIn('Stacktrace', r) self.assertIn('ThreadStacktrace', r) self.assertEqual(r['Title'], 'crash crashed with SIGSEGV in f()') # updating with a useless stack trace retains core dump r['StacktraceTop'] = '?? ()' r['Stacktrace'] = 'long\ntrace' r['ThreadStacktrace'] = 'thread\neven longer\ntrace' r['FooBar'] = 'bogus' self.crashdb.update_traces(self.get_segv_report(), r, 'I can has a better retrace?') r = self.crashdb.download(self.get_segv_report()) self.assertIn('CoreDump', r) self.assertIn('Dependencies', r) self.assertIn('Disassembly', r) self.assertIn('Registers', r) self.assertIn('Stacktrace', r) # TODO: ascertain that it's the updated one self.assertIn('ThreadStacktrace', r) self.assertNotIn('FooBar', r) self.assertEqual(r['Title'], 'crash crashed with SIGSEGV in f()') tags = self.crashdb.launchpad.bugs[self.get_segv_report()].tags self.assertIn('apport-crash', tags) self.assertNotIn('apport-collected', tags) # updating with a useful stack trace removes core dump r['StacktraceTop'] = 'read () from /lib/libc.6.so\nfoo (i=1) from /usr/lib/libfoo.so' r['Stacktrace'] = 'long\ntrace' r['ThreadStacktrace'] = 'thread\neven longer\ntrace' self.crashdb.update_traces(self.get_segv_report(), r, 'good retrace!') r = self.crashdb.download(self.get_segv_report()) self.assertNotIn('CoreDump', r) self.assertIn('Dependencies', r) self.assertIn('Disassembly', r) self.assertIn('Registers', r) self.assertIn('Stacktrace', r) self.assertIn('ThreadStacktrace', r) self.assertNotIn('FooBar', r) # as previous title had standard form, the top function gets # updated self.assertEqual(r['Title'], 'crash crashed with SIGSEGV in read()') # respects title amendments bug = self.crashdb.launchpad.bugs[self.get_segv_report()] bug.title = 'crash crashed with SIGSEGV in f() on exit' try: bug.lp_save() except HTTPError: pass # LP#336866 workaround r['StacktraceTop'] = 'read () from /lib/libc.6.so\nfoo (i=1) from /usr/lib/libfoo.so' self.crashdb.update_traces(self.get_segv_report(), r, 'good retrace with title amendment') r = self.crashdb.download(self.get_segv_report()) self.assertEqual(r['Title'], 'crash crashed with SIGSEGV in read() on exit') # does not destroy custom titles bug = self.crashdb.launchpad.bugs[self.get_segv_report()] bug.title = 'crash is crashy' try: bug.lp_save() except HTTPError: pass # LP#336866 workaround r['StacktraceTop'] = 'read () from /lib/libc.6.so\nfoo (i=1) from /usr/lib/libfoo.so' self.crashdb.update_traces(self.get_segv_report(), r, 'good retrace with custom title') r = self.crashdb.download(self.get_segv_report()) self.assertEqual(r['Title'], 'crash is crashy') # test various situations which caused crashes r['Stacktrace'] = '' # empty file r['ThreadStacktrace'] = '"]\xb6"\n' # not interpretable as UTF-8, LP #353805 r['StacktraceSource'] = 'a\nb\nc\nd\ne\n\xff\xff\xff\n\f' self.crashdb.update_traces(self.get_segv_report(), r, 'tests') def test_get_comment_url(self): '''get_comment_url() for non-ASCII titles''' # UTF-8 bytestring, works in both python 2.7 and 3 title = b'1\xc3\xa4\xe2\x99\xa52' # distro, UTF-8 bytestring r = apport.Report('Bug') r['Title'] = title url = self.crashdb.get_comment_url(r, 42) self.assertTrue(url.endswith('/ubuntu/+filebug/42?field.title=1%C3%A4%E2%99%A52')) # distro, unicode r['Title'] = title.decode('UTF-8') url = self.crashdb.get_comment_url(r, 42) self.assertTrue(url.endswith('/ubuntu/+filebug/42?field.title=1%C3%A4%E2%99%A52')) # package, unicode r['SourcePackage'] = 'coreutils' url = self.crashdb.get_comment_url(r, 42) self.assertTrue(url.endswith('/ubuntu/+source/coreutils/+filebug/42?field.title=1%C3%A4%E2%99%A52')) def test_update_description(self): '''update() with changing description''' bug_target = self.crashdb.lp_distro.getSourcePackage(name='bash') bug = self.crashdb.launchpad.bugs.createBug( description='test description for test bug.', target=bug_target, title='testbug') id = bug.id self.assertTrue(id > 0) sys.stderr.write('(https://%s/bugs/%i) ' % (self.hostname, id)) r = apport.Report('Bug') r['OneLiner'] = b'bogus\xe2\x86\x92'.decode('UTF-8') r['StacktraceTop'] = 'f()\ng()\nh(1)' r['ShortGoo'] = 'lineone\nlinetwo' r['DpkgTerminalLog'] = 'one\ntwo\nthree\nfour\nfive\nsix' r['VarLogDistupgradeBinGoo'] = b'\x01' * 1024 self.crashdb.update(id, r, 'NotMe', change_description=True) r = self.crashdb.download(id) self.assertEqual(r['OneLiner'], b'bogus\xe2\x86\x92'.decode('UTF-8')) self.assertEqual(r['ShortGoo'], 'lineone\nlinetwo') self.assertEqual(r['DpkgTerminalLog'], 'one\ntwo\nthree\nfour\nfive\nsix') self.assertEqual(r['VarLogDistupgradeBinGoo'], b'\x01' * 1024) self.assertEqual(self.crashdb.launchpad.bugs[id].tags, ['apport-collected']) def test_update_comment(self): '''update() with appending comment''' bug_target = self.crashdb.lp_distro.getSourcePackage(name='bash') # we need to fake an apport description separator here, since we # want to be lazy and use download() for checking the result bug = self.crashdb.launchpad.bugs.createBug( description='Pr0blem\n\n--- \nProblemType: Bug', target=bug_target, title='testbug') id = bug.id self.assertTrue(id > 0) sys.stderr.write('(https://%s/bugs/%i) ' % (self.hostname, id)) r = apport.Report('Bug') r['OneLiner'] = 'bogus→' r['StacktraceTop'] = 'f()\ng()\nh(1)' r['ShortGoo'] = 'lineone\nlinetwo' r['DpkgTerminalLog'] = 'one\ntwo\nthree\nfour\nfive\nsix' r['VarLogDistupgradeBinGoo'] = '\x01' * 1024 self.crashdb.update(id, r, 'meow', change_description=False) r = self.crashdb.download(id) self.assertNotIn('OneLiner', r) self.assertNotIn('ShortGoo', r) self.assertEqual(r['ProblemType'], 'Bug') self.assertEqual(r['DpkgTerminalLog'], 'one\ntwo\nthree\nfour\nfive\nsix') self.assertEqual(r['VarLogDistupgradeBinGoo'], '\x01' * 1024) self.assertEqual(self.crashdb.launchpad.bugs[id].tags, ['apport-collected']) def test_update_filter(self): '''update() with a key filter''' bug_target = self.crashdb.lp_distro.getSourcePackage(name='bash') bug = self.crashdb.launchpad.bugs.createBug( description='test description for test bug', target=bug_target, title='testbug') id = bug.id self.assertTrue(id > 0) sys.stderr.write('(https://%s/bugs/%i) ' % (self.hostname, id)) r = apport.Report('Bug') r['OneLiner'] = 'bogus→' r['StacktraceTop'] = 'f()\ng()\nh(1)' r['ShortGoo'] = 'lineone\nlinetwo' r['DpkgTerminalLog'] = 'one\ntwo\nthree\nfour\nfive\nsix' r['VarLogDistupgradeBinGoo'] = '\x01' * 1024 self.crashdb.update(id, r, 'NotMe', change_description=True, key_filter=['ProblemType', 'ShortGoo', 'DpkgTerminalLog']) r = self.crashdb.download(id) self.assertNotIn('OneLiner', r) self.assertEqual(r['ShortGoo'], 'lineone\nlinetwo') self.assertEqual(r['ProblemType'], 'Bug') self.assertEqual(r['DpkgTerminalLog'], 'one\ntwo\nthree\nfour\nfive\nsix') self.assertNotIn('VarLogDistupgradeBinGoo', r) self.assertEqual(self.crashdb.launchpad.bugs[id].tags, []) def test_get_distro_release(self): '''get_distro_release()''' self.assertEqual(self.crashdb.get_distro_release(self.get_segv_report()), self.ref_report['DistroRelease']) def test_get_affected_packages(self): '''get_affected_packages()''' self.assertEqual(self.crashdb.get_affected_packages(self.get_segv_report()), [self.ref_report['SourcePackage']]) def test_is_reporter(self): '''is_reporter()''' self.assertTrue(self.crashdb.is_reporter(self.get_segv_report())) self.assertFalse(self.crashdb.is_reporter(1)) def test_can_update(self): '''can_update()''' self.assertTrue(self.crashdb.can_update(self.get_segv_report())) self.assertFalse(self.crashdb.can_update(1)) def test_duplicates(self): '''duplicate handling''' # initially we have no dups self.assertEqual(self.crashdb.duplicate_of(self.get_segv_report()), None) self.assertEqual(self.crashdb.get_fixed_version(self.get_segv_report()), None) segv_id = self.get_segv_report() known_test_id = self.get_uncommon_description_report() known_test_id2 = self.get_uncommon_description_report(force_fresh=True) # dupe our segv_report and check that it worked; then undupe it r = self.crashdb.download(segv_id) self.crashdb.close_duplicate(r, segv_id, known_test_id) self.assertEqual(self.crashdb.duplicate_of(segv_id), known_test_id) # this should be a no-op self.crashdb.close_duplicate(r, segv_id, known_test_id) self.assertEqual(self.crashdb.duplicate_of(segv_id), known_test_id) self.assertEqual(self.crashdb.get_fixed_version(segv_id), 'invalid') self.crashdb.close_duplicate(r, segv_id, None) self.assertEqual(self.crashdb.duplicate_of(segv_id), None) self.assertEqual(self.crashdb.get_fixed_version(segv_id), None) # this should have removed attachments; note that Stacktrace is # short, and thus inline r = self.crashdb.download(self.get_segv_report()) self.assertNotIn('CoreDump', r) self.assertNotIn('Disassembly', r) self.assertNotIn('ProcMaps', r) self.assertNotIn('ProcStatus', r) self.assertNotIn('Registers', r) self.assertNotIn('ThreadStacktrace', r) # now try duplicating to a duplicate bug; this should automatically # transition to the master bug self.crashdb.close_duplicate(apport.Report(), known_test_id, known_test_id2) self.crashdb.close_duplicate(r, segv_id, known_test_id) self.assertEqual(self.crashdb.duplicate_of(segv_id), known_test_id2) self.crashdb.close_duplicate(apport.Report(), known_test_id, None) self.crashdb.close_duplicate(apport.Report(), known_test_id2, None) self.crashdb.close_duplicate(r, segv_id, None) # this should be a no-op self.crashdb.close_duplicate(apport.Report(), known_test_id, None) self.assertEqual(self.crashdb.duplicate_of(known_test_id), None) self.crashdb.mark_regression(segv_id, known_test_id) self._verify_marked_regression(segv_id) def test_marking_segv(self): '''processing status markings for signal crashes''' # mark_retraced() unretraced_before = self.crashdb.get_unretraced() self.assertIn(self.get_segv_report(), unretraced_before) self.assertNotIn(self.get_python_report(), unretraced_before) self.crashdb.mark_retraced(self.get_segv_report()) unretraced_after = self.crashdb.get_unretraced() self.assertNotIn(self.get_segv_report(), unretraced_after) self.assertEqual(unretraced_before, unretraced_after.union(set([self.get_segv_report()]))) self.assertEqual(self.crashdb.get_fixed_version(self.get_segv_report()), None) # mark_retrace_failed() self._mark_needs_retrace(self.get_segv_report()) self.crashdb.mark_retraced(self.get_segv_report()) self.crashdb.mark_retrace_failed(self.get_segv_report()) unretraced_after = self.crashdb.get_unretraced() self.assertNotIn(self.get_segv_report(), unretraced_after) self.assertEqual(unretraced_before, unretraced_after.union(set([self.get_segv_report()]))) self.assertEqual(self.crashdb.get_fixed_version(self.get_segv_report()), None) # mark_retrace_failed() of invalid bug self._mark_needs_retrace(self.get_segv_report()) self.crashdb.mark_retraced(self.get_segv_report()) self.crashdb.mark_retrace_failed(self.get_segv_report(), "I don't like you") unretraced_after = self.crashdb.get_unretraced() self.assertNotIn(self.get_segv_report(), unretraced_after) self.assertEqual(unretraced_before, unretraced_after.union(set([self.get_segv_report()]))) self.assertEqual(self.crashdb.get_fixed_version(self.get_segv_report()), 'invalid') def test_marking_project(self): '''processing status markings for a project CrashDB''' # create a distro bug distro_bug = self.crashdb.launchpad.bugs.createBug( description='foo', tags=self.crashdb.arch_tag, target=self.crashdb.lp_distro, title='ubuntu distro retrace bug') # print('distro bug: https://staging.launchpad.net/bugs/%i' % distro_bug.id) # create a project crash DB and a bug launchpad_instance = os.environ.get('APPORT_LAUNCHPAD_INSTANCE') or 'staging' project_db = CrashDatabase( os.environ.get('LP_CREDENTIALS'), {'project': 'langpack-o-matic', 'launchpad_instance': launchpad_instance}) project_bug = project_db.launchpad.bugs.createBug( description='bar', tags=project_db.arch_tag, target=project_db.lp_distro, title='project retrace bug') # print('project bug: https://staging.launchpad.net/bugs/%i' % project_bug.id) # on project_db, we recognize the project bug and can mark it unretraced_before = project_db.get_unretraced() self.assertIn(project_bug.id, unretraced_before) self.assertNotIn(distro_bug.id, unretraced_before) project_db.mark_retraced(project_bug.id) unretraced_after = project_db.get_unretraced() self.assertNotIn(project_bug.id, unretraced_after) self.assertEqual(unretraced_before, unretraced_after.union(set([project_bug.id]))) self.assertEqual(self.crashdb.get_fixed_version(project_bug.id), None) def test_marking_foreign_arch(self): '''processing status markings for a project CrashDB''' # create a DB for fake arch launchpad_instance = os.environ.get('APPORT_LAUNCHPAD_INSTANCE') or 'staging' fakearch_db = CrashDatabase( os.environ.get('LP_CREDENTIALS'), {'distro': 'ubuntu', 'launchpad_instance': launchpad_instance, 'architecture': 'fakearch'}) fakearch_unretraced_before = fakearch_db.get_unretraced() systemarch_unretraced_before = self.crashdb.get_unretraced() # create a bug with a fake architecture bug = self.crashdb.launchpad.bugs.createBug( description='foo', tags=['need-fakearch-retrace'], target=self.crashdb.lp_distro, title='ubuntu distro retrace bug for fakearch') print('fake arch bug: https://staging.launchpad.net/bugs/%i' % bug.id) fakearch_unretraced_after = fakearch_db.get_unretraced() systemarch_unretraced_after = self.crashdb.get_unretraced() self.assertEqual(systemarch_unretraced_before, systemarch_unretraced_after) self.assertEqual(fakearch_unretraced_after, fakearch_unretraced_before.union(set([bug.id]))) def test_marking_python(self): '''processing status markings for interpreter crashes''' unchecked_before = self.crashdb.get_dup_unchecked() self.assertIn(self.get_python_report(), unchecked_before) self.assertNotIn(self.get_segv_report(), unchecked_before) self.crashdb._mark_dup_checked(self.get_python_report(), self.ref_report) unchecked_after = self.crashdb.get_dup_unchecked() self.assertNotIn(self.get_python_report(), unchecked_after) self.assertEqual(unchecked_before, unchecked_after.union(set([self.get_python_report()]))) self.assertEqual(self.crashdb.get_fixed_version(self.get_python_report()), None) def test_update_traces_invalid(self): '''updating an invalid crash This simulates a race condition where a crash being processed gets invalidated by marking it as a duplicate. ''' id = self.get_segv_report(force_fresh=True) r = self.crashdb.download(id) self.crashdb.close_duplicate(r, id, self.get_segv_report()) # updating with a useful stack trace removes core dump r['StacktraceTop'] = 'read () from /lib/libc.6.so\nfoo (i=1) from /usr/lib/libfoo.so' r['Stacktrace'] = 'long\ntrace' r['ThreadStacktrace'] = 'thread\neven longer\ntrace' self.crashdb.update_traces(id, r, 'good retrace!') r = self.crashdb.download(id) self.assertNotIn('CoreDump', r) @patch.object(CrashDatabase, '_get_source_version') def test_get_fixed_version(self, *args): '''get_fixed_version() for fixed bugs Other cases are already checked in test_marking_segv() (invalid bugs) and test_duplicates (duplicate bugs) for efficiency. ''' # staging.launchpad.net often does not have Quantal, so mock-patch # it to a known value CrashDatabase._get_source_version.return_value = '3.14' self._mark_report_fixed(self.get_segv_report()) fixed_ver = self.crashdb.get_fixed_version(self.get_segv_report()) self.assertEqual(fixed_ver, '3.14') self._mark_report_new(self.get_segv_report()) self.assertEqual(self.crashdb.get_fixed_version(self.get_segv_report()), None) # # Launchpad specific implementation and tests # @classmethod def _get_instance(klass): '''Create a CrashDB instance''' launchpad_instance = os.environ.get('APPORT_LAUNCHPAD_INSTANCE') or 'staging' return CrashDatabase(os.environ.get('LP_CREDENTIALS'), {'distro': 'ubuntu', 'launchpad_instance': launchpad_instance}) def _get_bug_target(self, db, report): '''Return the bug_target for this report.''' project = db.options.get('project') if 'SourcePackage' in report: return db.lp_distro.getSourcePackage(name=report['SourcePackage']) elif project: return db.launchpad.projects[project] else: return self.lp_distro def _file_bug(self, bug_target, report, description=None): '''File a bug report for a report. Return the bug ID. ''' # unfortunately staging's +storeblob API hardly ever works, so we # must avoid using it. Fake it by manually doing the comments and # attachments that +filebug would ordinarily do itself when given a # blob handle. if description is None: description = 'some description' mime = self.crashdb._generate_upload_blob(report) if _python2: msg = email.message_from_file(mime) else: msg = email.message_from_binary_file(mime) mime.close() msg_iter = msg.walk() # first one is the multipart container header = _python2 and msg_iter.next() or msg_iter.__next__() assert header.is_multipart() # second part should be an inline text/plain attachments with all short # fields part = _python2 and msg_iter.next() or msg_iter.__next__() assert not part.is_multipart() assert part.get_content_type() == 'text/plain' description += '\n\n' + part.get_payload(decode=True).decode('UTF-8', 'replace') # create the bug from header and description data bug = self.crashdb.launchpad.bugs.createBug( description=description, # temporarily disabled to work around SSLHandshakeError on # private attachments # private=(header['Private'] == 'yes'), tags=header['Tags'].split(), target=bug_target, title=report.get('Title', report.standard_title())) # nwo add the attachments for part in msg_iter: assert not part.is_multipart() bug.addAttachment(comment='', description=part.get_filename(), content_type=None, data=part.get_payload(decode=True), filename=part.get_filename(), is_patch=False) for subscriber in header['Subscribers'].split(): sub = self.crashdb.launchpad.people[subscriber] if sub: bug.subscribe(person=sub) return bug.id def _mark_needs_retrace(self, id): '''Mark a report ID as needing retrace.''' bug = self.crashdb.launchpad.bugs[id] if self.crashdb.arch_tag not in bug.tags: bug.tags = bug.tags + [self.crashdb.arch_tag] bug.lp_save() def _mark_needs_dupcheck(self, id): '''Mark a report ID as needing duplicate check.''' bug = self.crashdb.launchpad.bugs[id] if 'need-duplicate-check' not in bug.tags: bug.tags = bug.tags + ['need-duplicate-check'] bug.lp_save() def _mark_report_fixed(self, id): '''Close a report ID as "fixed".''' bug = self.crashdb.launchpad.bugs[id] tasks = list(bug.bug_tasks) assert len(tasks) == 1 t = tasks[0] t.status = 'Fix Released' t.lp_save() def _mark_report_new(self, id): '''Reopen a report ID as "new".''' bug = self.crashdb.launchpad.bugs[id] tasks = list(bug.bug_tasks) assert len(tasks) == 1 t = tasks[0] t.status = 'New' t.lp_save() def _verify_marked_regression(self, id): '''Verify that report ID is marked as regression.''' bug = self.crashdb.launchpad.bugs[id] self.assertIn('regression-retracer', bug.tags) def test_project(self): '''reporting crashes against a project instead of a distro''' launchpad_instance = os.environ.get('APPORT_LAUNCHPAD_INSTANCE') or 'staging' # crash database for langpack-o-matic project (this does not have # packages in any distro) crashdb = CrashDatabase(os.environ.get('LP_CREDENTIALS'), {'project': 'langpack-o-matic', 'launchpad_instance': launchpad_instance}) self.assertEqual(crashdb.distro, None) # create Python crash report r = apport.Report('Crash') r['ExecutablePath'] = '/bin/foo' r['Traceback'] = '''Traceback (most recent call last): File "/bin/foo", line 67, in fuzz print(weird) NameError: global name 'weird' is not defined''' r.add_os_info() r.add_user_info() self.assertEqual(r.standard_title(), "foo crashed with NameError in fuzz(): global name 'weird' is not defined") # file it bug_target = self._get_bug_target(crashdb, r) self.assertEqual(bug_target.name, 'langpack-o-matic') id = self._file_bug(bug_target, r) self.assertTrue(id > 0) sys.stderr.write('(https://%s/bugs/%i) ' % (self.hostname, id)) # update r = crashdb.download(id) r['StacktraceTop'] = 'read () from /lib/libc.6.so\nfoo (i=1) from /usr/lib/libfoo.so' r['Stacktrace'] = 'long\ntrace' r['ThreadStacktrace'] = 'thread\neven longer\ntrace' crashdb.update_traces(id, r, 'good retrace!') r = crashdb.download(id) # test fixed version self.assertEqual(crashdb.get_fixed_version(id), None) crashdb.close_duplicate(r, id, self.get_uncommon_description_report()) self.assertEqual(crashdb.duplicate_of(id), self.get_uncommon_description_report()) self.assertEqual(crashdb.get_fixed_version(id), 'invalid') crashdb.close_duplicate(r, id, None) self.assertEqual(crashdb.duplicate_of(id), None) self.assertEqual(crashdb.get_fixed_version(id), None) def test_download_robustness(self): '''download() of uncommon description formats''' # only ProblemType/Architecture/DistroRelease in description r = self.crashdb.download(self.get_uncommon_description_report()) self.assertEqual(r['ProblemType'], 'Package') self.assertEqual(r['Architecture'], 'amd64') self.assertTrue(r['DistroRelease'].startswith('Ubuntu ')) def test_escalation(self): '''Escalating bugs with more than 10 duplicates''' launchpad_instance = os.environ.get('APPORT_LAUNCHPAD_INSTANCE') or 'staging' db = CrashDatabase(os.environ.get('LP_CREDENTIALS'), {'distro': 'ubuntu', 'launchpad_instance': launchpad_instance, 'escalation_tag': 'omgkittens', 'escalation_subscription': 'apport-hackers'}) count = 0 p = db.launchpad.people[db.options['escalation_subscription']].self_link # needs to have 13 consecutive valid bugs without dupes first_dup = 10070 try: for b in range(first_dup, first_dup + 13): count += 1 sys.stderr.write('%i ' % b) db.close_duplicate(apport.Report(), b, self.get_segv_report()) b = db.launchpad.bugs[self.get_segv_report()] has_escalation_tag = db.options['escalation_tag'] in b.tags has_escalation_subscription = any([s.person_link == p for s in b.subscriptions]) if count <= 10: self.assertFalse(has_escalation_tag) self.assertFalse(has_escalation_subscription) else: self.assertTrue(has_escalation_tag) self.assertTrue(has_escalation_subscription) finally: for b in range(first_dup, first_dup + count): sys.stderr.write('R%i ' % b) db.close_duplicate(apport.Report(), b, None) sys.stderr.write('\n') def test_marking_python_task_mangle(self): '''source package task fixup for marking interpreter crashes''' self._mark_needs_dupcheck(self.get_python_report()) unchecked_before = self.crashdb.get_dup_unchecked() self.assertIn(self.get_python_report(), unchecked_before) # add an upstream task, and remove the package name from the # package task; _mark_dup_checked is supposed to restore the # package name b = self.crashdb.launchpad.bugs[self.get_python_report()] if b.private: b.private = False b.lp_save() t = b.bug_tasks[0] t.target = self.crashdb.launchpad.distributions['ubuntu'] t.lp_save() b.addTask(target=self.crashdb.launchpad.projects['coreutils']) r = self.crashdb.download(self.get_python_report()) self.crashdb._mark_dup_checked(self.get_python_report(), r) unchecked_after = self.crashdb.get_dup_unchecked() self.assertNotIn(self.get_python_report(), unchecked_after) self.assertEqual(unchecked_before, unchecked_after.union(set([self.get_python_report()]))) # upstream task should be unmodified b = self.crashdb.launchpad.bugs[self.get_python_report()] self.assertEqual(b.bug_tasks[0].bug_target_name, 'coreutils') self.assertEqual(b.bug_tasks[0].status, 'New') self.assertEqual(b.bug_tasks[0].importance, 'Undecided') # package-less distro task should have package name fixed self.assertEqual(b.bug_tasks[1].bug_target_name, 'coreutils (Ubuntu)') self.assertEqual(b.bug_tasks[1].status, 'New') self.assertEqual(b.bug_tasks[1].importance, 'Medium') # should not confuse get_fixed_version() self.assertEqual(self.crashdb.get_fixed_version(self.get_python_report()), None) @classmethod def _generate_sigsegv_report(klass, signal='11'): '''Create a test executable which will die with a SIGSEGV, generate a core dump for it, create a problem report with those two arguments (ExecutablePath and CoreDump) and call add_gdb_info(). Return the apport.report.Report. ''' workdir = None orig_cwd = os.getcwd() pr = apport.report.Report() try: workdir = tempfile.mkdtemp() atexit.register(shutil.rmtree, workdir) os.chdir(workdir) # create a test executable with open('crash.c', 'w') as fd: fd.write(''' int f(x) { int* p = 0; *p = x; return x+1; } int main() { return f(42); } ''') assert subprocess.call(['gcc', '-g', 'crash.c', '-o', 'crash']) == 0 assert os.path.exists('crash') # call it through gdb and dump core subprocess.call(['gdb', '--batch', '--ex', 'run', '--ex', 'generate-core-file core', './crash'], stdout=subprocess.PIPE) assert os.path.exists('core') subprocess.check_call(['sync']) assert subprocess.call(['readelf', '-n', 'core'], stdout=subprocess.PIPE) == 0 pr['ExecutablePath'] = os.path.join(workdir, 'crash') pr['CoreDump'] = (os.path.join(workdir, 'core'),) pr['Signal'] = signal pr.add_gdb_info() finally: os.chdir(orig_cwd) return pr unittest.main() ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/crashdb_impl/memory.py��������������������������������������������������������0000664�0000000�0000000�00000024226�14416105132�015673� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Simple in-memory CrashDatabase implementation, mainly useful for testing.''' # Copyright (C) 2007 - 2009 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import apport.crashdb import apport class CrashDatabase(apport.crashdb.CrashDatabase): '''Simple implementation of crash database interface which keeps everything in memory. This is mainly useful for testing and debugging.''' def __init__(self, auth_file, options): '''Initialize crash database connection. This class does not support bug patterns and authentication.''' apport.crashdb.CrashDatabase.__init__(self, auth_file, options) self.reports = [] # list of dictionaries with keys: report, fixed_version, dup_of, comment self.unretraced = set() self.dup_unchecked = set() if 'dummy_data' in options: self.add_dummy_data() def upload(self, report, progress_callback=None): '''Store the report and return a handle number (starting from 0). This does not support (nor need) progress callbacks. ''' assert self.accepts(report) self.reports.append({'report': report, 'fixed_version': None, 'dup_of': None, 'comment': ''}) id = len(self.reports) - 1 if 'Traceback' in report: self.dup_unchecked.add(id) else: self.unretraced.add(id) return id def get_comment_url(self, report, handle): '''Return http://<sourcepackage>.bugs.example.com/<handle> for package bugs or http://bugs.example.com/<handle> for reports without a SourcePackage.''' if 'SourcePackage' in report: return 'http://%s.bugs.example.com/%i' % (report['SourcePackage'], handle) else: return 'http://bugs.example.com/%i' % handle def get_id_url(self, report, id): '''Return URL for a given report ID. The report is passed in case building the URL needs additional information from it, such as the SourcePackage name. Return None if URL is not available or cannot be determined. ''' return self.get_comment_url(report, id) def download(self, id): '''Download the problem report from given ID and return a Report.''' return self.reports[id]['report'] def get_affected_packages(self, id): '''Return list of affected source packages for given ID.''' return [self.reports[id]['report']['SourcePackage']] def is_reporter(self, id): '''Check whether the user is the reporter of given ID.''' return True def can_update(self, id): '''Check whether the user is eligible to update a report. A user should add additional information to an existing ID if (s)he is the reporter or subscribed, the bug is open, not a duplicate, etc. The exact policy and checks should be done according to the particular implementation. ''' return self.is_reporter(id) def update(self, id, report, comment, change_description=False, attachment_comment=None, key_filter=None): '''Update the given report ID with all data from report. This creates a text comment with the "short" data (see ProblemReport.write_mime()), and creates attachments for all the bulk/binary data. If change_description is True, and the crash db implementation supports it, the short data will be put into the description instead (like in a new bug). comment will be added to the "short" data. If attachment_comment is given, it will be added to the attachment uploads. If key_filter is a list or set, then only those keys will be added. ''' r = self.reports[id] r['comment'] = comment if key_filter: for f in key_filter: if f in report: r['report'][f] = report[f] else: r['report'].update(report) def get_distro_release(self, id): '''Get 'DistroRelease: <release>' from the given report ID and return it.''' return self.reports[id]['report']['DistroRelease'] def get_unfixed(self): '''Return an ID set of all crashes which are not yet fixed. The list must not contain bugs which were rejected or duplicate. This function should make sure that the returned list is correct. If there are any errors with connecting to the crash database, it should raise an exception (preferably IOError).''' result = set() for i in range(len(self.reports)): if self.reports[i]['dup_of'] is None and self.reports[i]['fixed_version'] is None: result.add(i) return result def get_fixed_version(self, id): '''Return the package version that fixes a given crash. Return None if the crash is not yet fixed, or an empty string if the crash is fixed, but it cannot be determined by which version. Return 'invalid' if the crash report got invalidated, such as closed a duplicate or rejected. This function should make sure that the returned result is correct. If there are any errors with connecting to the crash database, it should raise an exception (preferably IOError).''' try: if self.reports[id]['dup_of'] is not None: return 'invalid' return self.reports[id]['fixed_version'] except IndexError: return 'invalid' def duplicate_of(self, id): '''Return master ID for a duplicate bug. If the bug is not a duplicate, return None. ''' return self.reports[id]['dup_of'] def close_duplicate(self, report, id, master): '''Mark a crash id as duplicate of given master ID. If master is None, id gets un-duplicated. ''' self.reports[id]['dup_of'] = master def mark_regression(self, id, master): '''Mark a crash id as reintroducing an earlier crash which is already marked as fixed (having ID 'master').''' assert self.reports[master]['fixed_version'] is not None self.reports[id]['comment'] = 'regression, already fixed in #%i' % master def _mark_dup_checked(self, id, report): '''Mark crash id as checked for being a duplicate.''' try: self.dup_unchecked.remove(id) except KeyError: pass # happens when trying to check for dup twice def mark_retraced(self, id): '''Mark crash id as retraced.''' self.unretraced.remove(id) def get_unretraced(self): '''Return an ID set of all crashes which have not been retraced yet and which happened on the current host architecture.''' return self.unretraced def get_dup_unchecked(self): '''Return an ID set of all crashes which have not been checked for being a duplicate. This is mainly useful for crashes of scripting languages such as Python, since they do not need to be retraced. It should not return bugs that are covered by get_unretraced().''' return self.dup_unchecked def latest_id(self): '''Return the ID of the most recently filed report.''' return len(self.reports) - 1 def add_dummy_data(self): '''Add some dummy crash reports. This is mostly useful for test suites.''' # signal crash with source package and complete stack trace r = apport.Report() r['Package'] = 'libfoo1 1.2-3' r['SourcePackage'] = 'foo' r['DistroRelease'] = 'FooLinux Pi/2' r['Signal'] = '11' r['ExecutablePath'] = '/bin/crash' r['StacktraceTop'] = '''foo_bar (x=1) at crash.c:28 d01 (x=1) at crash.c:29 raise () from /lib/libpthread.so.0 <signal handler called> __frob (x=1) at crash.c:30''' self.upload(r) # duplicate of above crash (slightly different arguments and # package version) r = apport.Report() r['Package'] = 'libfoo1 1.2-4' r['SourcePackage'] = 'foo' r['DistroRelease'] = 'Testux 1.0' r['Signal'] = '11' r['ExecutablePath'] = '/bin/crash' r['StacktraceTop'] = '''foo_bar (x=2) at crash.c:28 d01 (x=3) at crash.c:29 raise () from /lib/libpthread.so.0 <signal handler called> __frob (x=4) at crash.c:30''' self.upload(r) # unrelated signal crash r = apport.Report() r['Package'] = 'bar 42-4' r['SourcePackage'] = 'bar' r['DistroRelease'] = 'Testux 1.0' r['Signal'] = '11' r['ExecutablePath'] = '/usr/bin/broken' r['StacktraceTop'] = '''h (p=0x0) at crash.c:25 g (x=1, y=42) at crash.c:26 f (x=1) at crash.c:27 e (x=1) at crash.c:28 d (x=1) at crash.c:29''' self.upload(r) # Python crash r = apport.Report() r['Package'] = 'python-goo 3epsilon1' r['SourcePackage'] = 'pygoo' r['DistroRelease'] = 'Testux 2.2' r['ExecutablePath'] = '/usr/bin/pygoo' r['Traceback'] = '''Traceback (most recent call last): File "test.py", line 7, in <module> print(_f(5)) File "test.py", line 5, in _f return g_foo00(x+1) File "test.py", line 2, in g_foo00 return x/0 ZeroDivisionError: integer division or modulo by zero''' self.upload(r) # Python crash reoccurs in a later version (used for regression detection) r = apport.Report() r['Package'] = 'python-goo 5' r['SourcePackage'] = 'pygoo' r['DistroRelease'] = 'Testux 2.2' r['ExecutablePath'] = '/usr/bin/pygoo' r['Traceback'] = '''Traceback (most recent call last): File "test.py", line 7, in <module> print(_f(5)) File "test.py", line 5, in _f return g_foo00(x+1) File "test.py", line 2, in g_foo00 return x/0 ZeroDivisionError: integer division or modulo by zero''' self.upload(r) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/fileutils.py������������������������������������������������������������������0000664�0000000�0000000�00000043746�15013704444�013751� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Functions to manage apport problem report files.''' # Copyright (C) 2006 - 2009 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os, glob, subprocess, os.path, time, pwd, sys, requests_unixsocket import stat from operator import itemgetter try: from configparser import (ConfigParser, NoOptionError, NoSectionError, MissingSectionHeaderError) (ConfigParser, NoOptionError, NoSectionError) # pyflakes except ImportError: # Python 2 from ConfigParser import (ConfigParser, NoOptionError, NoSectionError, MissingSectionHeaderError) from problem_report import ProblemReport from apport.packaging_impl import impl as packaging report_dir = os.environ.get('APPORT_REPORT_DIR', '/var/crash') core_dir = '/var/lib/apport/coredump' max_corefiles_per_uid = 5 _config_file = '~/.config/apport/settings' def allowed_to_report(): '''Check whether crash reporting is enabled.''' if not os.access("/usr/bin/whoopsie", os.X_OK): return True try: return subprocess.call(["/bin/systemctl", "-q", "is-enabled", "whoopsie.service"]) == 0 except OSError: return False def get_dbus_socket(dbus_addr): '''Extract the socket from a DBus address.''' if not dbus_addr: return None # Only support unix domain sockets, and only the default Ubuntu path if not dbus_addr.startswith("unix:path=/run/user/"): return None # Prevent path traversal if "../" in dbus_addr: return None # Don't support escaped values, multiple addresses, or multiple keys # and values for search in ["%", ",", ";"]: if search in dbus_addr: return None parts = dbus_addr.split("=") if len(parts) != 2: return None return parts[1] def find_package_desktopfile(package): '''Return a package's .desktop file. If given package is installed and has a single .desktop file, return the path to it, otherwise return None. ''' if package is None: return None desktopfile = None for line in packaging.get_files(package): if line.endswith('.desktop'): # restrict to autostart and applications, see LP#1147528 if not line.startswith('/etc/xdg/autostart') and not line.startswith('/usr/share/applications/'): continue if desktopfile: return None # more than one else: # only consider visible ones with open(line, 'rb') as f: if b'NoDisplay=true' not in f.read(): desktopfile = line return desktopfile def likely_packaged(file): '''Check whether the given file is likely to belong to a package. This is semi-decidable: A return value of False is definitive, a True value is only a guess which needs to be checked with find_file_package(). However, this function is very fast and does not access the package database. ''' pkg_whitelist = ['/bin/', '/boot', '/etc/', '/initrd', '/lib', '/sbin/', '/opt', '/usr/', '/var'] # packages only ship executables in these directories whitelist_match = False for i in pkg_whitelist: if file.startswith(i): whitelist_match = True break return whitelist_match and not file.startswith('/usr/local/') and not \ file.startswith('/var/lib/') def find_file_package(file): '''Return the package that ships the given file. Return None if no package ships it. ''' # resolve symlinks in directories (dir, name) = os.path.split(file) resolved_dir = os.path.realpath(dir) if os.path.isdir(resolved_dir): file = os.path.join(resolved_dir, name) if not likely_packaged(file): return None return packaging.get_file_package(file) def find_snap(snap): '''Return the data of the given snap. Return None if the snap is not found to be installed. ''' session = requests_unixsocket.Session() try: r = session.get('http+unix://%2Frun%2Fsnapd.socket/v2/snaps/{}'.format(snap)) if r.status_code == 200: j = r.json() return j["result"] except Exception: return None def seen_report(report): '''Check whether the report file has already been processed earlier.''' st = os.stat(report) return (st.st_atime > st.st_mtime) or (st.st_size == 0) def mark_report_upload(report): upload = '%s.upload' % report.rsplit('.', 1)[0] uploaded = '%s.uploaded' % report.rsplit('.', 1)[0] # if uploaded exists and is older than the report remove it and upload if os.path.exists(uploaded) and os.path.exists(upload): report_st = os.stat(report) upload_st = os.stat(upload) if upload_st.st_mtime < report_st.st_mtime: os.unlink(upload) with open(upload, 'a'): pass def mark_hanging_process(report, pid): if 'ExecutablePath' in report: subject = report['ExecutablePath'].replace('/', '_') else: raise ValueError('report does not have the ExecutablePath attribute') uid = os.geteuid() base = '%s.%s.%s.hanging' % (subject, str(uid), pid) path = os.path.join(report_dir, base) with open(path, 'a'): pass def mark_report_seen(report): '''Mark given report file as seen.''' st = os.stat(report) try: os.utime(report, (st.st_mtime, st.st_mtime - 1)) except OSError: # file is probably not our's, so do it the slow and boring way # change the file's access time until it stat's different than the mtime. # This might take a while if we only have 1-second resolution. Time out # after 1.2 seconds. timeout = 12 while timeout > 0: f = open(report) f.read(1) f.close() try: st = os.stat(report) except OSError: return if st.st_atime > st.st_mtime: break time.sleep(0.1) timeout -= 1 if timeout == 0: # happens on noatime mounted partitions; just give up and delete delete_report(report) def get_all_reports(): '''Return a list with all report files accessible to the calling user.''' reports = [] for r in glob.glob(os.path.join(report_dir, '*.crash')): try: if os.path.getsize(r) > 0 and os.access(r, os.R_OK | os.W_OK): reports.append(r) except OSError: # race condition, can happen if report disappears between glob and # stat pass return reports def get_new_reports(): '''Get new reports for calling user. Return a list with all report files which have not yet been processed and are accessible to the calling user. ''' reports = [] for r in get_all_reports(): try: if not seen_report(r): reports.append(r) except OSError: # race condition, can happen if report disappears between glob and # stat pass return reports def get_all_system_reports(): '''Get all system reports. Return a list with all report files which belong to a system user (i. e. uid < 500 according to LSB). ''' reports = [] for r in glob.glob(os.path.join(report_dir, '*.crash')): try: st = os.stat(r) if st.st_size > 0 and st.st_uid < 500: # filter out guest session crashes; they might have a system UID try: pw = pwd.getpwuid(st.st_uid) if pw.pw_name.startswith('guest'): continue except KeyError: pass reports.append(r) except OSError: # race condition, can happen if report disappears between glob and # stat pass return reports def get_new_system_reports(): '''Get new system reports. Return a list with all report files which have not yet been processed and belong to a system user (i. e. uid < 500 according to LSB). ''' return [r for r in get_all_system_reports() if not seen_report(r)] def delete_report(report): '''Delete the given report file. If unlinking the file fails due to a permission error (if report_dir is not writable to normal users), the file will be truncated to 0 bytes instead. ''' try: os.unlink(report) except OSError: with open(report, 'w') as f: f.truncate(0) def get_recent_crashes(report): '''Return the number of recent crashes for the given report file. Return the number of recent crashes (currently, crashes which happened more than 24 hours ago are discarded). ''' pr = ProblemReport() pr.load(report, False, key_filter=['CrashCounter', 'Date']) try: count = int(pr['CrashCounter']) report_time = time.mktime(time.strptime(pr['Date'])) cur_time = time.mktime(time.localtime()) # discard reports which are older than 24 hours if cur_time - report_time > 24 * 3600: return 0 return count except (ValueError, KeyError): return 0 def make_report_file(report, uid=None): '''Construct a canonical pathname for a report and open it for writing If uid is not given, it defaults to the effective uid of the current process. The report file must not exist already, to prevent losing previous reports or symlink attacks. Return an open file object for binary writing. ''' if 'ExecutablePath' in report: subject = report['ExecutablePath'].replace('/', '_') elif 'Package' in report: subject = report['Package'].split(None, 1)[0] else: raise ValueError('report has neither ExecutablePath nor Package attribute') if not uid: uid = os.geteuid() path = os.path.join(report_dir, '%s.%s.crash' % (subject, str(uid))) if sys.version >= '3': return open(path, 'xb') else: return os.fdopen(os.open(path, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'wb') def check_files_md5(sumfile): '''Check file integrity against md5 sum file. sumfile must be md5sum(1) format (relative to /). Return a list of files that don't match. ''' assert os.path.exists(sumfile) m = subprocess.Popen(['/usr/bin/md5sum', '-c', sumfile], stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd='/', env={}) out = m.communicate()[0].decode() # if md5sum succeeded, don't bother parsing the output if m.returncode == 0: return [] mismatches = [] for line in out.splitlines(): if line.endswith('FAILED'): mismatches.append(line.rsplit(':', 1)[0]) return mismatches def get_config(section, setting, default=None, path=None, bool=False): '''Return a setting from user configuration. This is read from ~/.config/apport/settings or path. If bool is True, the value is interpreted as a boolean. Privileges may need to be dropped before calling this. ''' if not path: # Properly handle dropped privileges homedir = pwd.getpwuid(os.geteuid())[5] path = _config_file.replace("~", homedir) contents = '' fd = None f = None if not get_config.config: get_config.config = ConfigParser(interpolation=None) try: fd = os.open(path, os.O_NOFOLLOW | os.O_RDONLY) st = os.fstat(fd) if stat.S_ISREG(st.st_mode): f = os.fdopen(fd, 'r') # Limit size to prevent DoS contents = f.read(500) except (IOError, OSError): pass finally: if f is not None: f.close() elif fd is not None: os.close(fd) try: get_config.config.read_string(contents) except MissingSectionHeaderError: pass try: if bool: return get_config.config.getboolean(section, setting) else: return get_config.config.get(section, setting) except (NoOptionError, NoSectionError): return default get_config.config = None def get_starttime(contents): '''Extracts the starttime from the contents of a stat file''' # 22nd field in a stat file is the time the process started after # system boot in clock ticks. In order to prevent filename # manipulations including spaces or extra parentheses, skip all the way # to the very last closing parentheses, then start counting. stripped = contents[contents.rfind(")") + 2:] # We've skipped over the PID and the filename, so index is now 19. return int(stripped.split()[19]) def get_uid_and_gid(contents): '''Extracts the uid and gid from the contents of a status file''' real_uid = None real_gid = None for line in contents.splitlines(): # Iterate through the whole contents to make sure we're getting # the last Uid and Gid lines in the file and not a manipulated # process name with embedded newlines. if line.startswith('Uid:') and len(line.split()) > 1: real_uid = int(line.split()[1]) elif line.startswith('Gid:') and len(line.split()) > 1: real_gid = int(line.split()[1]) return (real_uid, real_gid) def search_map(mapfd, uid): '''Search for an ID in a map fd''' for line in mapfd: fields = line.split() if len(fields) != 3: continue host_start = int(fields[1]) host_end = host_start + int(fields[2]) if uid >= host_start and uid <= host_end: return True return False def get_boot_id(): '''Gets the kernel boot id''' with open('/proc/sys/kernel/random/boot_id') as f: boot_id = f.read().strip() return boot_id def get_process_path(proc_pid_fd=None): '''Gets the process path from a proc directory file descriptor''' if proc_pid_fd is None: return 'unknown' try: return os.readlink('exe', dir_fd=proc_pid_fd) except OSError: return 'unknown' def get_core_path(pid=None, exe=None, uid=None, timestamp=None, proc_pid_fd=None): '''Get the path to a core file''' def opener(path, flags): return os.open(path, flags, dir_fd=proc_pid_fd) if pid is None: pid = 'unknown' timestamp = 'unknown' else: if timestamp is None: if proc_pid_fd is not None: stat_filename = "stat" else: stat_filename = "/proc/%s/stat" % pid with open(stat_filename, opener=opener) as stat_file: stat_contents = stat_file.read() timestamp = get_starttime(stat_contents) if exe is None: exe = get_process_path(proc_pid_fd) exe = exe.replace('/', '_').replace('.', '_') if uid is None: uid = os.getuid() # This is similar to systemd-coredump, but with the exe name instead # of the command name core_name = ('core.%s.%s.%s.%s.%s' % (exe, uid, get_boot_id(), str(pid), str(timestamp))) core_path = os.path.join(core_dir, core_name) return (core_name, core_path) def find_core_files_by_uid(uid): '''Searches the core file directory for files that belong to a specified uid. Returns a list of lists containing the filename and the file modification time.''' uid = str(uid) core_files = [] uid_files = [] if os.path.exists(core_dir): core_files = os.listdir(path=core_dir) for f in core_files: try: if f.split('.')[2] == uid: time = os.path.getmtime(os.path.join(core_dir, f)) uid_files.append([f, time]) except (IndexError, FileNotFoundError): continue return uid_files def clean_core_directory(uid): '''Removes old files from the core directory if there are more than the maximum allowed per uid''' uid_files = find_core_files_by_uid(uid) sorted_files = sorted(uid_files, key=itemgetter(1)) # Subtract a extra one to make room for the new core file if len(uid_files) > max_corefiles_per_uid - 1: for x in range(len(uid_files) - max_corefiles_per_uid + 1): os.remove(os.path.join(core_dir, sorted_files[0][0])) sorted_files.remove(sorted_files[0]) def shared_libraries(path): '''Get libraries with which the specified binary is linked. Return a library name -> path mapping, for example 'libc.so.6' -> '/lib/x86_64-linux-gnu/libc.so.6'. ''' libs = {} ldd = subprocess.Popen(['ldd', path], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) for line in ldd.stdout: try: name, rest = line.split('=>', 1) except ValueError: continue name = name.strip() # exclude linux-vdso since that is a virtual so if 'linux-vdso' in name: continue # this is usually "path (address)" rest = rest.split()[0].strip() if rest.startswith('('): continue libs[name] = rest ldd.stdout.close() ldd.wait() if ldd.returncode != 0: return {} return libs def links_with_shared_library(path, lib): '''Check if the binary at path links with the library named lib. path should be a fully qualified path (e.g. report['ExecutablePath']), lib may be of the form 'lib<name>' or 'lib<name>.so.<version>' ''' libs = shared_libraries(path) if lib in libs: return True for linked_lib in libs: if linked_lib.startswith(lib + '.so.'): return True return False ��������������������������apport-2.20.11/apport/hookutils.py������������������������������������������������������������������0000664�0000000�0000000�00000105567�14416106601�013767� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Convenience functions for use in package hooks.''' # Copyright (C) 2008 - 2012 Canonical Ltd. # Authors: # Matt Zimmerman <mdz@canonical.com> # Brian Murray <brian@ubuntu.com> # Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import subprocess import os import sys import time import datetime import glob import re import stat import base64 import tempfile import select import shutil import locale import json from apport.packaging_impl import impl as packaging import apport import apport.fileutils _invalid_key_chars_re = re.compile(r'[^0-9a-zA-Z_.-]') _AGENT = None def path_to_key(path): '''Generate a valid report key name from a file path. This will replace invalid punctuation symbols with valid ones. ''' if sys.version[0] >= '3': if isinstance(path, bytes): path = path.decode('UTF-8') else: if not isinstance(path, bytes): path = path.encode('UTF-8') return _invalid_key_chars_re.sub('.', path.replace(' ', '_')) def attach_file_if_exists(report, path, key=None, overwrite=True, force_unicode=False): '''Attach file contents if file exists. If key is not specified, the key name will be derived from the file name with path_to_key(). If overwrite is True, an existing key will be updated. If it is False, a new key with '_' appended will be added instead. If the contents is valid UTF-8, or force_unicode is True, then the value will be a string, otherwise it will be bytes. ''' # Prevent directory traversal. Do it here too so it won't disclose if # a file exists or not. if "../" in path: return if not key: key = path_to_key(path) if os.path.exists(path): attach_file(report, path, key, overwrite, force_unicode) def read_file(path, force_unicode=False): '''Return the contents of the specified path. If the contents is valid UTF-8, or force_unicode is True, then the value will a string, otherwise it will be bytes. Upon error, this will deliver a text representation of the error, instead of failing. ''' try: # Prevent directory traversal if "../" in path: return 'Error: invalid path.' fd = os.open(path, os.O_NOFOLLOW | os.O_RDONLY | os.O_NONBLOCK) st = os.fstat(fd) # make sure there are no symlinks in the full path real_path = os.path.realpath(path) if st.st_ino != os.stat(real_path).st_ino or path != real_path: os.close(fd) return 'Error: path contained symlinks.' # make sure the file isn't a FIFO or symlink if stat.S_ISREG(st.st_mode): with os.fdopen(fd, 'rb') as f: contents = f.read().strip() else: os.close(fd) return 'Error: path was not a regular file.' if force_unicode: return contents.decode('UTF-8', errors='replace') try: return contents.decode('UTF-8') except UnicodeDecodeError: return contents except Exception as e: return 'Error: ' + str(e) def attach_file(report, path, key=None, overwrite=True, force_unicode=False): '''Attach a file to the report. If key is not specified, the key name will be derived from the file name with path_to_key(). If overwrite is True, an existing key will be updated. If it is False, a new key with '_' appended will be added instead. If the contents is valid UTF-8, or force_unicode is True, then the value will a string, otherwise it will be bytes. ''' if not key: key = path_to_key(path) # Do not clobber existing keys if not overwrite: while key in report: key += '_' report[key] = read_file(path, force_unicode=force_unicode) def attach_conffiles(report, package, conffiles=None, ui=None): '''Attach information about any modified or deleted conffiles. If conffiles is given, only this subset will be attached. If ui is given, ask whether the contents of the file may be added to the report; if this is denied, or there is no UI, just mark it as "modified" in the report. ''' modified = packaging.get_modified_conffiles(package) for path, contents in modified.items(): if conffiles and path not in conffiles: continue key = 'modified.conffile.' + path_to_key(path) if type(contents) == str and (contents == '[deleted]' or contents.startswith('[inaccessible')): report[key] = contents continue if ui: response = ui.yesno('It seems you have modified the contents of "%s". Would you like to add the contents of it to your bug report?' % path) if response: report[key] = contents else: report[key] = '[modified]' else: report[key] = '[modified]' mtime = datetime.datetime.fromtimestamp(os.stat(path).st_mtime) report['mtime.conffile.' + path_to_key(path)] = mtime.isoformat() def attach_upstart_overrides(report, package): '''Attach information about any Upstart override files''' try: files = apport.packaging.get_files(package) except ValueError: return for file in files: if os.path.exists(file) and file.startswith('/etc/init/'): override = file.replace('.conf', '.override') key = 'upstart.' + override.replace('/etc/init/', '') attach_file_if_exists(report, override, key) def attach_upstart_logs(report, package): '''Attach information about a package's session upstart logs''' try: files = apport.packaging.get_files(package) except ValueError: return for f in files: if not os.path.exists(f): continue if f.startswith('/usr/share/upstart/sessions/'): log = os.path.basename(f).replace('.conf', '.log') key = 'upstart.' + log try: log = os.path.join(os.environ['XDG_CACHE_HOME'], 'upstart', log) except KeyError: try: log = os.path.join(os.environ['HOME'], '.cache', 'upstart', log) except KeyError: continue attach_file_if_exists(report, log, key) if f.startswith('/usr/share/applications/') and f.endswith('.desktop'): desktopname = os.path.splitext(os.path.basename(f))[0] key = 'upstart.application.' + desktopname log = 'application-%s.log' % desktopname try: log = os.path.join(os.environ['XDG_CACHE_HOME'], 'upstart', log) except KeyError: try: log = os.path.join(os.environ['HOME'], '.cache', 'upstart', log) except KeyError: continue attach_file_if_exists(report, log, key) def attach_dmesg(report): '''Attach information from the kernel ring buffer (dmesg). This will not overwrite already existing information. ''' if not report.get('CurrentDmesg', '').strip(): report['CurrentDmesg'] = command_output(['dmesg']) def attach_dmi(report): dmi_dir = '/sys/class/dmi/id' if os.path.isdir(dmi_dir): for f in os.listdir(dmi_dir): p = os.path.realpath('%s/%s' % (dmi_dir, f)) st = os.stat(p) # ignore the root-only ones, since they have serial numbers if not stat.S_ISREG(st.st_mode) or (st.st_mode & 4 == 0): continue if f in ('subsystem', 'uevent'): continue try: value = read_file(p) except (OSError, IOError): continue if value: report['dmi.' + f.replace('_', '.')] = value def attach_hardware(report): '''Attach a standard set of hardware-related data to the report, including: - kernel dmesg (boot and current) - /proc/interrupts - /proc/cpuinfo - /proc/cmdline - /proc/modules - lspci -vvnn - lscpi -vt - lsusb - lsusb -v - lsusb -t - devices from udev - DMI information from /sys - prtconf (sparc) - pccardctl status/ident ''' attach_dmesg(report) attach_file(report, '/proc/interrupts', 'ProcInterrupts') attach_file(report, '/proc/cpuinfo', 'ProcCpuinfo') attach_file(report, '/proc/cmdline', 'ProcKernelCmdLine') if os.path.exists('/sys/bus/pci'): report['Lspci'] = command_output(['lspci', '-vvnn']) report['Lspci-vt'] = command_output(['lspci', '-vt']) report['Lsusb'] = command_output(['lsusb']) report['Lsusb-v'] = command_output(['lsusb', '-v']) report['Lsusb-t'] = command_output(['lsusb', '-t']) report['ProcModules'] = command_output(['sort', '/proc/modules']) report['UdevDb'] = command_output(['udevadm', 'info', '--export-db']) report['acpidump'] = \ root_command_output(["/usr/share/apport/dump_acpi_tables.py"]) # anonymize partition labels labels = report['UdevDb'] labels = re.sub('ID_FS_LABEL=(.*)', 'ID_FS_LABEL=<hidden>', labels) labels = re.sub('ID_FS_LABEL_ENC=(.*)', 'ID_FS_LABEL_ENC=<hidden>', labels) labels = re.sub('by-label/(.*)', 'by-label/<hidden>', labels) labels = re.sub('ID_FS_LABEL=(.*)', 'ID_FS_LABEL=<hidden>', labels) labels = re.sub('ID_FS_LABEL_ENC=(.*)', 'ID_FS_LABEL_ENC=<hidden>', labels) labels = re.sub('by-label/(.*)', 'by-label/<hidden>', labels) report['UdevDb'] = labels attach_dmi(report) # Use the hardware information to create a machine type. if 'dmi.sys.vendor' in report and 'dmi.product.name' in report: report['MachineType'] = '%s %s' % (report['dmi.sys.vendor'], report['dmi.product.name']) if command_available('prtconf'): report['Prtconf'] = command_output(['prtconf']) if command_available('pccardctl'): out = command_output(['pccardctl', 'status']).strip() if out: report['PccardctlStatus'] = out out = command_output(['pccardctl', 'ident']).strip() if out: report['PccardctlIdent'] = out def attach_alsa_old(report): ''' (loosely based on http://www.alsa-project.org/alsa-info.sh) for systems where alsa-info is not installed (i e, *buntu 12.04 and earlier) ''' attach_file_if_exists(report, os.path.expanduser('~/.asoundrc'), 'UserAsoundrc') attach_file_if_exists(report, os.path.expanduser('~/.asoundrc.asoundconf'), 'UserAsoundrcAsoundconf') attach_file_if_exists(report, '/etc/asound.conf') attach_file_if_exists(report, '/proc/asound/version', 'AlsaVersion') attach_file(report, '/proc/cpuinfo', 'ProcCpuinfo') report['AlsaDevices'] = command_output(['ls', '-l', '/dev/snd/']) report['AplayDevices'] = command_output(['aplay', '-l']) report['ArecordDevices'] = command_output(['arecord', '-l']) report['PciMultimedia'] = pci_devices(PCI_MULTIMEDIA) cards = [] if os.path.exists('/proc/asound/cards'): with open('/proc/asound/cards') as fd: for line in fd: if ']:' in line: fields = line.lstrip().split() cards.append(int(fields[0])) for card in cards: key = 'Card%d.Amixer.info' % card report[key] = command_output(['amixer', '-c', str(card), 'info']) key = 'Card%d.Amixer.values' % card report[key] = command_output(['amixer', '-c', str(card)]) for codecpath in glob.glob('/proc/asound/card%d/codec*' % card): if os.path.isfile(codecpath): codec = os.path.basename(codecpath) key = 'Card%d.Codecs.%s' % (card, path_to_key(codec)) attach_file(report, codecpath, key=key) elif os.path.isdir(codecpath): codec = os.path.basename(codecpath) for name in os.listdir(codecpath): path = os.path.join(codecpath, name) key = 'Card%d.Codecs.%s.%s' % (card, path_to_key(codec), path_to_key(name)) attach_file(report, path, key) def attach_alsa(report): '''Attach ALSA subsystem information to the report. ''' if os.path.exists('/usr/share/alsa-base/alsa-info.sh'): report['AlsaInfo'] = command_output(['/usr/share/alsa-base/alsa-info.sh', '--stdout', '--no-upload']) else: attach_alsa_old(report) report['AudioDevicesInUse'] = command_output( ['fuser', '-v'] + glob.glob('/dev/dsp*') + glob.glob('/dev/snd/*') + glob.glob('/dev/seq*')) if os.path.exists('/usr/bin/pacmd'): report['PulseList'] = command_output(['pacmd', 'list']) attach_dmi(report) attach_dmesg(report) def command_available(command): '''Is given command on the executable search path?''' if 'PATH' not in os.environ: return False path = os.environ['PATH'] for element in path.split(os.pathsep): if not element: continue filename = os.path.join(element, command) if os.path.isfile(filename) and os.access(filename, os.X_OK): return True return False def command_output(command, input=None, stderr=subprocess.STDOUT, keep_locale=False, decode_utf8=True): '''Try to execute given command (list) and return its stdout. In case of failure, a textual error gets returned. This function forces LC_MESSAGES to C, to avoid translated output in bug reports. If decode_utf8 is True (default), the output will be converted to a string, otherwise left as bytes. ''' env = os.environ.copy() if not keep_locale: env['LC_MESSAGES'] = 'C' try: sp = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=stderr, stdin=(input and subprocess.PIPE or None), env=env) except OSError as e: return 'Error: ' + str(e) out = sp.communicate(input)[0] if sp.returncode == 0: res = out.strip() else: res = (b'Error: command ' + str(command).encode() + b' failed with exit code ' + str(sp.returncode).encode() + b': ' + out) if decode_utf8: res = res.decode('UTF-8', errors='replace') return res def _spawn_pkttyagent(): global _AGENT if _AGENT is not None: return if os.geteuid() == 0: return if not sys.stdin.isatty(): return if not os.path.exists('/usr/bin/pkttyagent'): return try: (r, w) = os.pipe2(0) except OSError: return _AGENT = subprocess.Popen(['pkttyagent', '--notify-fd', str(w), '--fallback'], close_fds=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE) os.close(w) with select.epoll() as epoll: while True: epoll.register(r, select.EPOLLIN) events = epoll.poll() for fd, event_type in events: if event_type & select.EPOLLHUP: os.close(r) return return def kill_pkttyagent(): global _AGENT if _AGENT is None: return _AGENT.terminate() _AGENT.wait() _AGENT = None def _root_command_prefix(): if os.getuid() == 0: return [] elif os.path.exists('/usr/bin/pkexec'): _spawn_pkttyagent() return ['pkexec'] # the package hook won't have everything it wanted but that's okay else: return [] def root_command_output(command, input=None, stderr=subprocess.STDOUT, decode_utf8=True): '''Try to execute given command (list) as root and return its stdout. This passes the command through pkexec, unless the caller is already root. In case of failure, a textual error gets returned. If decode_utf8 is True (default), the output will be converted to a string, otherwise left as bytes. ''' assert isinstance(command, list), 'command must be a list' output = command_output(_root_command_prefix() + command, input, stderr, keep_locale=True, decode_utf8=decode_utf8) return output def attach_root_command_outputs(report, command_map): '''Execute multiple commands as root and put their outputs into report. command_map is a keyname -> 'shell command' dictionary with the commands to run. They are all run through /bin/sh, so you need to take care of shell escaping yourself. To include stderr output of a command, end it with "2>&1". Just like root_command_output, this passes the command through pkexec, unless the caller is already root. This is preferrable to using root_command_output() multiple times, as that will ask for the password every time. ''' wrapper_path = os.path.join(os.path.abspath( os.environ.get('APPORT_DATA_DIR', '/usr/share/apport')), 'root_info_wrapper') workdir = tempfile.mkdtemp() try: # create a shell script with all the commands script_path = os.path.join(workdir, ':script:') script = open(script_path, 'w') for keyname, command in command_map.items(): assert hasattr(command, 'strip'), 'command must be a string (shell command)' # use "| cat" here, so that we can end commands with 2>&1 # (otherwise it would have the wrong redirection order) script.write('%s | cat > %s\n' % (command, os.path.join(workdir, keyname))) script.close() # run script sp = subprocess.Popen(_root_command_prefix() + [wrapper_path, script_path]) sp.wait() # now read back the individual outputs for keyname in command_map: try: with open(os.path.join(workdir, keyname), 'rb') as f: buf = f.read().strip() except IOError: # this can happen if the user dismisses authorization in # _root_command_prefix continue # opportunistically convert to strings, like command_output() try: buf = buf.decode('UTF-8') except UnicodeDecodeError: pass if buf: report[keyname] = buf f.close() finally: shutil.rmtree(workdir) def __filter_re_process(pattern, process): lines = '' while process.poll() is None: for line in process.stdout: line = line.decode('UTF-8', errors='replace') if pattern.search(line): lines += line process.stdout.close() process.wait() if process.returncode == 0: return lines return '' def recent_syslog(pattern, path=None): '''Extract recent system messages which match a regex. pattern should be a "re" object. By default, messages are read from the systemd journal, or /var/log/syslog; but when giving "path", messages are read from there instead. ''' if path: p = subprocess.Popen(['tail', '-n', '10000', path], stdout=subprocess.PIPE) elif os.path.exists('/run/systemd/system'): p = subprocess.Popen(['journalctl', '--system', '--quiet', '-b', '-a'], stdout=subprocess.PIPE) elif os.access('/var/log/syslog', os.R_OK): p = subprocess.Popen(['tail', '-n', '10000', '/var/log/syslog'], stdout=subprocess.PIPE) return __filter_re_process(pattern, p) def xsession_errors(pattern=None): '''Extract messages from ~/.xsession-errors. By default this parses out glib-style warnings, errors, criticals etc. and X window errors. You can specify a "re" object as pattern to customize the filtering. Please note that you should avoid attaching the whole file to reports, as it can, and often does, contain sensitive and private data. ''' path = os.path.expanduser('~/.xsession-errors') if not os.path.exists(path) or \ not os.access(path, os.R_OK): return '' if not pattern: pattern = re.compile(r'^(\(.*:\d+\): \w+-(WARNING|CRITICAL|ERROR))|(Error: .*No Symbols named)|([^ ]+\[\d+\]: ([A-Z]+):)|([^ ]-[A-Z]+ \*\*:)|(received an X Window System error)|(^The error was \')|(^ \(Details: serial \d+ error_code)') lines = '' with open(path, 'rb') as f: for line in f: line = line.decode('UTF-8', errors='replace') if pattern.search(line): lines += line return lines PCI_MASS_STORAGE = 0x01 PCI_NETWORK = 0x02 PCI_DISPLAY = 0x03 PCI_MULTIMEDIA = 0x04 PCI_MEMORY = 0x05 PCI_BRIDGE = 0x06 PCI_SIMPLE_COMMUNICATIONS = 0x07 PCI_BASE_SYSTEM_PERIPHERALS = 0x08 PCI_INPUT_DEVICES = 0x09 PCI_DOCKING_STATIONS = 0x0a PCI_PROCESSORS = 0x0b PCI_SERIAL_BUS = 0x0c def pci_devices(*pci_classes): '''Return a text dump of PCI devices attached to the system.''' if not pci_classes: return command_output(['lspci', '-vvnn']) result = '' output = command_output(['lspci', '-vvmmnn']) for paragraph in output.split('\n\n'): pci_class = None slot = None for line in paragraph.split('\n'): try: key, value = line.split(':', 1) except ValueError: continue value = value.strip() key = key.strip() if key == 'Class': n = int(value[-5:-1], 16) pci_class = (n & 0xff00) >> 8 elif key == 'Slot': slot = value if pci_class and slot and pci_class in pci_classes: if result: result += '\n\n' result += command_output(['lspci', '-vvnns', slot]).strip() return result def usb_devices(): '''Return a text dump of USB devices attached to the system.''' # TODO: would be nice to be able to filter by interface class return command_output(['lsusb', '-v']) def files_in_package(package, globpat=None): '''Retrieve a list of files owned by package, optionally matching globpat''' files = packaging.get_files(package) if globpat: result = [f for f in files if glob.fnmatch.fnmatch(f, globpat)] else: result = files return result def attach_gconf(report, package): '''Obsolete''' # keeping a no-op function for some time to not break hooks pass def attach_gsettings_schema(report, schema): '''Attach user-modified gsettings keys of a schema.''' cur_value = report.get('GsettingsChanges', '') defaults = {} # schema -> key -> value env = os.environ.copy() env['XDG_CONFIG_HOME'] = '/nonexisting' gsettings = subprocess.Popen(['gsettings', 'list-recursively', schema], env=env, stdout=subprocess.PIPE) for line in gsettings.stdout: try: (schema_name, key, value) = line.split(None, 2) value = value.rstrip() except ValueError: continue # invalid line defaults.setdefault(schema_name, {})[key] = value gsettings = subprocess.Popen(['gsettings', 'list-recursively', schema], stdout=subprocess.PIPE) for line in gsettings.stdout: try: (schema_name, key, value) = line.split(None, 2) value = value.rstrip() except ValueError: continue # invalid line if value != defaults.get(schema_name, {}).get(key, ''): if schema_name == b'org.gnome.shell' and \ key in [b'command-history', b'favorite-apps']: value = 'redacted by apport' cur_value += '%s %s %s\n' % (schema_name, key, value) report['GsettingsChanges'] = cur_value def attach_gsettings_package(report, package): '''Attach user-modified gsettings keys of all schemas in a package.''' for schema_file in files_in_package(package, '/usr/share/glib-2.0/schemas/*.gschema.xml'): schema = os.path.basename(schema_file)[:-12] attach_gsettings_schema(report, schema) def attach_journal_errors(report, time_window=10) -> None: '''Attach journal warnings and errors. If the report contains a date, get the journal logs around that date (plus/minus the time_window in seconds). Otherwise attach the latest 1000 journal logs since the last boot. ''' if not os.path.exists('/run/systemd/system'): return crash_timestamp = report.get_timestamp() if crash_timestamp: before_crash = crash_timestamp - time_window after_crash = crash_timestamp + time_window args = [f'--since=@{before_crash}', f'--until=@{after_crash}'] else: args = ['-b', '--lines=1000'] report['JournalErrors'] = command_output( ['journalctl', '--priority=warning'] + args ) def attach_network(report): '''Attach generic network-related information to report.''' report['IpRoute'] = command_output(['ip', 'route']) report['IpAddr'] = command_output(['ip', 'addr']) report['PciNetwork'] = pci_devices(PCI_NETWORK) attach_file_if_exists(report, '/etc/network/interfaces', key='IfupdownConfig') for var in ('http_proxy', 'ftp_proxy', 'no_proxy'): if var in os.environ: report[var] = os.environ[var] def attach_wifi(report): '''Attach wireless (WiFi) network information to report.''' report['WifiSyslog'] = recent_syslog(re.compile(r'(NetworkManager|modem-manager|dhclient|kernel|wpa_supplicant)(\[\d+\])?:')) report['IwConfig'] = re.sub( 'ESSID:(.*)', 'ESSID:<hidden>', re.sub('Encryption key:(.*)', 'Encryption key: <hidden>', re.sub('Access Point: (.*)', 'Access Point: <hidden>', command_output(['iwconfig'])))) report['RfKill'] = command_output(['rfkill', 'list']) if os.path.exists('/sbin/iw'): iw_output = command_output(['iw', 'reg', 'get']) else: iw_output = 'N/A' report['CRDA'] = iw_output attach_file_if_exists(report, '/var/log/wpa_supplicant.log', key='WpaSupplicantLog') def attach_printing(report): '''Attach printing information to the report. Based on http://wiki.ubuntu.com/PrintingBugInfoScript. ''' attach_file_if_exists(report, '/etc/papersize', 'Papersize') attach_file_if_exists(report, '/var/log/cups/error_log', 'CupsErrorLog') report['Locale'] = command_output(['locale']) report['Lpstat'] = command_output(['lpstat', '-v']) ppds = glob.glob('/etc/cups/ppd/*.ppd') if ppds: nicknames = command_output(['fgrep', '-H', '*NickName'] + ppds) report['PpdFiles'] = re.sub(r'/etc/cups/ppd/(.*).ppd:\*NickName: *"(.*)"', r'\g<1>: \g<2>', nicknames) report['PrintingPackages'] = package_versions( 'foo2zjs', 'foomatic-db', 'foomatic-db-engine', 'foomatic-db-gutenprint', 'foomatic-db-hpijs', 'foomatic-filters', 'foomatic-gui', 'hpijs', 'hplip', 'm2300w', 'min12xxw', 'c2050', 'hpoj', 'pxljr', 'pnm2ppa', 'splix', 'hp-ppd', 'hpijs-ppds', 'linuxprinting.org-ppds', 'openprinting-ppds', 'openprinting-ppds-extra', 'ghostscript', 'cups', 'cups-driver-gutenprint', 'foomatic-db-gutenprint', 'ijsgutenprint', 'cupsys-driver-gutenprint', 'gimp-gutenprint', 'gutenprint-doc', 'gutenprint-locales', 'system-config-printer-common', 'kdeprint') def attach_mac_events(report, profiles=None): '''Attach MAC information and events to the report.''' # Allow specifying a string, or a list of strings if isinstance(profiles, str): profiles = [profiles] mac_regex = r'audit\(|apparmor|selinux|security' mac_re = re.compile(mac_regex, re.IGNORECASE) aa_regex = 'apparmor="DENIED".+?profile=([^ ]+?)[ ]' aa_re = re.compile(aa_regex, re.IGNORECASE) if 'KernLog' not in report: report['KernLog'] = __filter_re_process( mac_re, subprocess.Popen(['dmesg'], stdout=subprocess.PIPE)) if 'AuditLog' not in report and os.path.exists('/var/run/auditd.pid'): attach_root_command_outputs(report, {'AuditLog': 'egrep "' + mac_regex + '" /var/log/audit/audit.log'}) attach_file_if_exists(report, '/proc/version_signature', 'ProcVersionSignature') attach_file(report, '/proc/cmdline', 'ProcCmdline') for match in re.findall(aa_re, report.get('KernLog', '') + report.get('AuditLog', '')): if not profiles: _add_tag(report, 'apparmor') break try: if match[0] == '"': profile = match[1:-1] elif sys.version[0] >= '3': profile = bytes.fromhex(match).decode('UTF-8', errors='replace') else: profile = match.decode('hex', errors='replace') except Exception: continue for search_profile in profiles: if re.match('^' + search_profile + '$', profile): _add_tag(report, 'apparmor') break def _add_tag(report, tag): '''Adds or appends a tag to the report''' current_tags = report.get('Tags', '') if current_tags: current_tags += ' ' report['Tags'] = current_tags + tag def attach_related_packages(report, packages): '''Attach version information for related packages In the future, this might also run their hooks. ''' report['RelatedPackageVersions'] = package_versions(*packages) def package_versions(*packages): '''Return a text listing of package names and versions. Arguments may be package names or globs, e. g. "foo*" ''' if not packages: return '' versions = [] for package_pattern in packages: if not package_pattern: continue matching_packages = packaging.package_name_glob(package_pattern) if not matching_packages: versions.append((package_pattern, 'N/A')) for package in sorted(matching_packages): try: version = packaging.get_version(package) except ValueError: version = 'N/A' if version is None: version = 'N/A' versions.append((package, version)) package_width, version_width = \ map(max, [map(len, t) for t in zip(*versions)]) fmt = '%%-%ds %%s' % package_width return '\n'.join([fmt % v for v in versions]) def _get_module_license(module): '''Return the license for a given kernel module.''' try: modinfo = subprocess.Popen(['/sbin/modinfo', module], stdout=subprocess.PIPE, stderr=subprocess.PIPE) out = modinfo.communicate()[0].decode('UTF-8') if modinfo.returncode != 0: return 'invalid' except OSError: return None for line in out.splitlines(): fields = line.split(':', 1) if len(fields) < 2: continue if fields[0] == 'license': return fields[1].strip() return None def nonfree_kernel_modules(module_list='/proc/modules'): '''Check loaded modules and return a list of those which are not free.''' try: with open(module_list) as f: mods = [line.split()[0] for line in f] except IOError: return [] nonfree = [] for m in mods: s = _get_module_license(m) if s and not ('GPL' in s or 'BSD' in s or 'MPL' in s or 'MIT' in s): nonfree.append(m) return nonfree def __drm_con_info(con): info = '' for f in os.listdir(con): path = os.path.join(con, f) if f == 'uevent' or not os.path.isfile(path): continue val = open(path, 'rb').read().strip() # format some well-known attributes specially if f == 'modes': val = val.replace(b'\n', b' ') if f == 'edid': val = base64.b64encode(val) f += '-base64' info += '%s: %s\n' % (f, val.decode('UTF-8', errors='replace')) return info def attach_drm_info(report): '''Add information about DRM hardware. Collect information from /sys/class/drm/. ''' drm_dir = '/sys/class/drm' if not os.path.isdir(drm_dir): return for f in os.listdir(drm_dir): con = os.path.join(drm_dir, f) if os.path.exists(os.path.join(con, 'enabled')): # DRM can set an arbitrary string for its connector paths. report['DRM.' + path_to_key(f)] = __drm_con_info(con) def in_session_of_problem(report): '''Check if the problem happened in the currently running XDG session. This can be used to determine if e. g. ~/.xsession-errors is relevant and should be attached. Return None if this cannot be determined. ''' session_id = os.environ.get('XDG_SESSION_ID') if not session_id: # fall back to reading cgroup with open('/proc/self/cgroup') as f: for line in f: line = line.strip() if 'name=systemd:' in line and line.endswith('.scope') and '/session-' in line: session_id = line.split('/session-', 1)[1][:-6] break else: return None # report time is in local TZ orig_ctime = locale.getlocale(locale.LC_TIME) try: try: locale.setlocale(locale.LC_TIME, 'C') report_time = time.mktime(time.strptime(report['Date'])) except KeyError: return None finally: locale.setlocale(locale.LC_TIME, orig_ctime) except locale.Error: return None # determine session creation time try: session_start_time = os.stat('/run/systemd/sessions/' + session_id).st_mtime except (IOError, OSError): return None return session_start_time <= report_time def attach_default_grub(report, key=None): '''attach /etc/default/grub after filtering out password lines''' path = '/etc/default/grub' if not key: key = path_to_key(path) if os.path.exists(path): with open(path, 'r') as f: filtered = [line if not line.startswith('password') else '### PASSWORD LINE REMOVED ###' for line in f.readlines()] report[key] = ''.join(filtered) def attach_casper_md5check(report, location): '''attach the results of the casper md5check of install media''' result = 'skip' mismatches = [] if os.path.exists(location): attach_root_command_outputs(report, {'CasperMD5json': "cat '%s'" % location}) if 'CasperMD5json' in report: check = json.loads(report['CasperMD5json']) result = check['result'] mismatches = check['checksum_missmatch'] report['CasperMD5CheckResult'] = result if mismatches: report['CasperMD5CheckMismatches'] = ' '.join(mismatches) report.pop('CasperMD5json', None) # backwards compatible API shared_libraries = apport.fileutils.shared_libraries links_with_shared_library = apport.fileutils.links_with_shared_library �����������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/packaging.py������������������������������������������������������������������0000664�0000000�0000000�00000030254�14416106601�013660� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Abstraction of packaging operations.''' # Copyright (C) 2007 - 2011 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os import sys import re import subprocess class PackageInfo: # default global configuration file configuration = '/etc/default/apport' def get_version(self, package): '''Return the installed version of a package. Throw ValueError if package does not exist. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_available_version(self, package): '''Return the latest available version of a package. Throw ValueError if package does not exist. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_dependencies(self, package): '''Return a list of packages a package depends on.''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_source(self, package): '''Return the source package name for a package. Throw ValueError if package does not exist. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_package_origin(self, package): '''Return package origin. Return the repository name from which a package was installed, or None if it cannot be determined. Throw ValueError if package is not installed. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def is_distro_package(self, package): '''Check package origin. Return True if the package is a genuine distro package, or False if it comes from a third-party source. Throw ValueError if package does not exist. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_architecture(self, package): '''Return the architecture of a package. This might differ on multiarch architectures (e. g. an i386 Firefox package on a x86_64 system) ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_files(self, package): '''Return list of files shipped by a package. Throw ValueError if package does not exist. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_modified_files(self, package): '''Return list of all modified files of a package.''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_modified_conffiles(self, package): '''Return modified configuration files of a package. Return a file name -> file contents map of all configuration files of package. Please note that apport.hookutils.attach_conffiles() is the official user-facing API for this, which will ask for confirmation and allows filtering. ''' return {} def get_file_package(self, file, uninstalled=False, map_cachedir=None, release=None, arch=None): '''Return the package a file belongs to. Return None if the file is not shipped by any package. If uninstalled is True, this will also find files of uninstalled packages; this is very expensive, though, and needs network access and lots of CPU and I/O resources. In this case, map_cachedir can be set to an existing directory which will be used to permanently store the downloaded maps. If it is not set, a temporary directory will be used. Also, release and arch can be set to a foreign release/architecture instead of the one from the current system. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_system_architecture(self): '''Return the architecture of the system. This should use the notation of the particular distribution. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_library_paths(self): '''Return a list of default library search paths. The entries should be separated with a colon ':', like for $LD_LIBRARY_PATH. This needs to take any multiarch directories into account. ''' # dummy default implementation return '/lib:/usr/lib' def set_mirror(self, url): '''Explicitly set a distribution mirror URL. This might be called for operations that need to fetch distribution files/packages from the network. By default, the mirror will be read from the system configuration files. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def get_source_tree(self, srcpackage, dir, version=None): '''Download a source package and unpack it into dir.. dir should exist and be empty. This also has to care about applying patches etc., so that dir will eventually contain the actually compiled source. If version is given, this particular version will be retrieved. Otherwise this will fetch the latest available version. Return the directory that contains the actual source root directory (which might be a subdirectory of dir). Return None if the source is not available. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def compare_versions(self, ver1, ver2): '''Compare two package versions. Return -1 for ver < ver2, 0 for ver1 == ver2, and 1 for ver1 > ver2. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def enabled(self): '''Return whether Apport should generate crash reports. Signal crashes are controlled by /proc/sys/kernel/core_pattern, but some init script needs to set that value based on a configuration file. This also determines whether Apport generates reports for Python, package, or kernel crashes. Implementations should parse the configuration file which controls Apport (such as /etc/default/apport in Debian/Ubuntu). ''' try: with open(self.configuration) as f: conf = f.read() except IOError: # if the file does not exist, assume it's enabled return True return re.search(r'^\s*enabled\s*=\s*0\s*$', conf, re.M) is None def get_kernel_package(self): '''Return the actual Linux kernel package name. This is used when the user reports a bug against the "linux" package. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def install_packages(self, rootdir, configdir, release, packages, verbose=False, cache_dir=None, permanent_rootdir=False, architecture=None, origins=None, install_dbg=True, install_deps=False): '''Install packages into a sandbox (for apport-retrace). In order to work without any special permissions and without touching the running system, this should only download and unpack packages into the given root directory, not install them into the system. configdir points to a directory with by-release configuration files for the packaging system; this is completely dependent on the backend implementation, the only assumption is that this looks into configdir/release/, so that you can use retracing for multiple DistroReleases. As a special case, if configdir is None, it uses the current system configuration, and "release" is ignored. release is the value of the report's 'DistroRelease' field. packages is a list of ('packagename', 'version') tuples. If the version is None, it should install the most current available version. If cache_dir is given, then the downloaded packages will be stored there, to speed up subsequent retraces. If permanent_rootdir is True, then the sandbox created from the downloaded packages will be reused, to speed up subsequent retraces. If architecture is given, the sandbox will be created with packages of the given architecture (as specified in a report's "Architecture" field). If not given it defaults to the host system's architecture. If origins is given, the sandbox will be created with apt data sources for foreign origins. If install_deps is True, then the dependencies of packages will also be installed. Return a string with outdated packages, or None if all packages were installed. If something is wrong with the environment (invalid configuration, package servers down, etc.), this should raise a SystemError with a meaningful error message. ''' raise NotImplementedError('this method must be implemented by a concrete subclass') def package_name_glob(self, glob): '''Return known package names which match given glob.''' raise NotImplementedError('this method must be implemented by a concrete subclass') def is_native_origin_package(self, package): '''Check if a package is one which has been white listed. Return True for a package which came from an origin which is listed in native-origins.d, False if it comes from a third-party source. ''' # Default implementation does nothing, i. e. native origins are not # supported. return False def get_uninstalled_package(self): '''Return a valid package name which is not installed. This is only used in the test suite. The default implementation should work, but might be slow for your backend, so you might want to reimplement this. ''' for p in self.package_name_glob('*'): if not self.is_distro_package(p): continue try: self.get_version(p) continue except ValueError: return p _os_version = None def get_os_version(self): '''Return (osname, osversion) tuple. This is read from /etc/os-release, or if that doesn't exist, 'lsb_release -sir' output. ''' if self._os_version: return self._os_version if os.path.exists('/etc/os-release'): name = None version = None with open('/etc/os-release') as f: for line in f: if line.startswith('NAME='): name = line.split('=', 1)[1] if name.startswith('"'): name = name[1:-2].strip() # work around inconsistent "Debian GNU/Linux" in os-release if name.endswith('GNU/Linux'): name = name.split()[0:-1] elif line.startswith('VERSION_ID='): version = line.split('=', 1)[1] if version.startswith('"'): version = version[1:-2].strip() if name and version: self._os_version = (name, version) return self._os_version else: sys.stderr.write('invalid /etc/os-release: Does not contain NAME and VERSION_ID\n') # fall back to lsb_release p = subprocess.Popen(['lsb_release', '-sir'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) (name, version) = p.communicate()[0].decode().strip().replace('\n', ' ').split() self._os_version = (name.strip(), version.strip()) return self._os_version ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/packaging_impl/���������������������������������������������������������������0000775�0000000�0000000�00000000000�14416105636�014332� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/report.py���������������������������������������������������������������������0000664�0000000�0000000�00000207114�14416106601�013250� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Representation of and data collection for a problem report.''' # Copyright (C) 2006 - 2009 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import subprocess, tempfile, os.path, re, pwd, grp, os, io import fnmatch, glob, traceback, errno, sys, atexit, imp, stat import xml.dom, xml.dom.minidom from xml.parsers.expat import ExpatError if sys.version > '3': _python2 = False from urllib.error import URLError from urllib.request import urlopen from urllib.parse import unquote (urlopen, URLError) # pyflakes else: _python2 = True from urllib import urlopen from urllib import unquote URLError = IOError import problem_report import apport import apport.fileutils from apport.packaging_impl import impl as packaging from apport.hookutils import kill_pkttyagent _data_dir = os.environ.get('APPORT_DATA_DIR', '/usr/share/apport') _hook_dir = '%s/package-hooks/' % (_data_dir) _common_hook_dir = '%s/general-hooks/' % (_data_dir) _opt_dir = '/opt' # path of the ignore file _ignore_file = '~/.apport-ignore.xml' # system-wide blacklist _blacklist_dir = '/etc/apport/blacklist.d' _whitelist_dir = '/etc/apport/whitelist.d' # programs that we consider interpreters interpreters = ['sh', 'bash', 'dash', 'csh', 'tcsh', 'python*', 'ruby*', 'php', 'perl*', 'mono*', 'awk'] # # helper functions # def _transitive_dependencies(package, depends_set): '''Recursively add dependencies of package to depends_set.''' try: packaging.get_version(package) except ValueError: return for d in packaging.get_dependencies(package): if d not in depends_set: depends_set.add(d) _transitive_dependencies(d, depends_set) def _read_proc_link(path, pid=None, dir_fd=None): '''Use readlink() to resolve link. Return a string representing the path to which the symbolic link points. ''' if not _python2 and dir_fd is not None: return os.readlink(path, dir_fd=dir_fd) return os.readlink("/proc/%s/%s" % (pid, path)) def _read_proc_file(path, pid=None, dir_fd=None): '''Read file content. Return its content, or return a textual error if it failed. ''' try: if not _python2 and dir_fd is not None: proc_file = os.open(path, os.O_RDONLY | os.O_CLOEXEC, dir_fd=dir_fd) else: proc_file = "/proc/%s/%s" % (pid, path) with io.open(proc_file, 'rb') as fd: return fd.read().strip().decode('UTF-8', errors='replace') except (OSError, IOError) as e: return 'Error: ' + str(e) def _read_maps(proc_pid_fd): '''Read /proc/pid/maps. Since /proc/$pid/maps may become unreadable unless we are ptracing the process, detect this, and attempt to attach/detach. ''' maps = 'Error: unable to read /proc maps file' if _python2: return 'Error: python2 does not provide a secure way to read /proc maps file' try: with open('maps', opener=lambda path, mode: os.open(path, mode, dir_fd=proc_pid_fd)) as fd: maps = fd.read().strip() except (OSError, IOError) as e: return 'Error: ' + str(e) return maps def _command_output(command, input=None, env=None): '''Run command and capture its output. Try to execute given command (argv list) and return its stdout, or return a textual error if it failed. ''' sp = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=env) # gdb can timeout when trying to retrace some core files, giving it 30 # minutes to run should be more than enough. try: out = sp.communicate(input=input, timeout=1800)[0] except subprocess.TimeoutExpired: sp.kill() out, errs = sp.communicate() raise OSError('Error: command %s timedout with exit code %i: %s' % ( str(command), sp.returncode, out)) if sp.returncode == 0: return out else: if out: out = out.decode('UTF-8', errors='replace') else: out = '' raise OSError('Error: command %s failed with exit code %i: %s' % ( str(command), sp.returncode, out)) def _check_bug_pattern(report, pattern): '''Check if given report matches the given bug pattern XML DOM node. Return the bug URL on match, otherwise None. ''' if _python2: if not pattern.attributes.has_key('url'): return None else: if 'url' not in pattern.attributes: return None for c in pattern.childNodes: # regular expression condition if c.nodeType == xml.dom.Node.ELEMENT_NODE and c.nodeName == 're': try: key = c.attributes['key'].nodeValue except KeyError: continue if key not in report: return None c.normalize() if c.hasChildNodes() and c.childNodes[0].nodeType == xml.dom.Node.TEXT_NODE: regexp = c.childNodes[0].nodeValue if _python2: regexp = regexp.encode('UTF-8') v = report[key] if isinstance(v, problem_report.CompressedValue): v = v.get_value() if not _python2: regexp = regexp.encode('UTF-8') elif isinstance(v, bytes): if not _python2: regexp = regexp.encode('UTF-8') try: re_c = re.compile(regexp) except Exception: continue if not re_c.search(v): return None if _python2: return pattern.attributes['url'].nodeValue.encode('UTF-8') else: return pattern.attributes['url'].nodeValue def _check_bug_patterns(report, patterns): try: if _python2: patterns = patterns.encode('UTF-8') dom = xml.dom.minidom.parseString(patterns) except (ExpatError, UnicodeEncodeError): return None for pattern in dom.getElementsByTagName('pattern'): url = _check_bug_pattern(report, pattern) if url: return url return None def _dom_remove_space(node): '''Recursively remove whitespace from given XML DOM node.''' for c in node.childNodes: if c.nodeType == xml.dom.Node.TEXT_NODE and c.nodeValue.strip() == '': c.unlink() node.removeChild(c) else: _dom_remove_space(c) def _run_hook(report, ui, hook): if not os.path.exists(hook): return False symb = {} try: with open(hook) as fd: exec(compile(fd.read(), hook, 'exec'), symb) try: symb['add_info'](report, ui) except TypeError as e: if str(e).startswith('add_info()'): # older versions of apport did not pass UI, and hooks that # do not require it don't need to take it symb['add_info'](report) else: raise except StopIteration: return True except Exception: hookname = os.path.splitext(os.path.basename(hook))[0].replace('-', '_') report['HookError_' + hookname] = traceback.format_exc() apport.error('hook %s crashed:', hook) traceback.print_exc() return False def _which_extrapath(command, extra_path): '''Return path of command, preferring extra_path''' if extra_path: env = os.environ.copy() parts = env.get('PATH', '').split(os.pathsep) parts[0:0] = extra_path.split(os.pathsep) env['PATH'] = os.pathsep.join(parts) else: env = None try: return subprocess.check_output(['which', command], env=env).decode().strip() except subprocess.CalledProcessError: return None # # Report class # class Report(problem_report.ProblemReport): '''A problem report specific to apport (crash or bug). This class wraps a standard ProblemReport and adds methods for collecting standard debugging data.''' def __init__(self, type='Crash', date=None): '''Initialize a fresh problem report. date is the desired date/time string; if None (default), the current local time is used. If the report is attached to a process ID, this should be set in self.pid, so that e. g. hooks can use it to collect additional data. ''' problem_report.ProblemReport.__init__(self, type, date) self.pid = None self._proc_maps_cache = None def _customized_package_suffix(self, package): '''Return a string suitable for appending to Package/Dependencies. If package has only unmodified files, return the empty string. If not, return ' [modified: ...]' with a list of modified files. ''' suffix = '' mod = packaging.get_modified_files(package) if mod: suffix += ' [modified: %s]' % ' '.join(mod) try: if not packaging.is_distro_package(package): origin = packaging.get_package_origin(package) if origin: suffix += ' [origin: %s]' % origin else: suffix += ' [origin: unknown]' except ValueError: # no-op for nonexisting packages pass return suffix def add_package(self, package): '''Add Package: field Determine the version of the given package (uses "(not installed") for uninstalled packages) and add Package: field to report. This also checks for any modified files. Return determined package version (None for uninstalled). ''' try: version = packaging.get_version(package) except ValueError: # package not installed version = None self['Package'] = '%s %s%s' % (package, version or '(not installed)', self._customized_package_suffix(package)) return version def add_package_info(self, package=None): '''Add packaging information. If package is not given, the report must have ExecutablePath. This adds: - Package: package name and installed version - SourcePackage: source package name (if possible to determine) - PackageArchitecture: processor architecture this package was built for - Dependencies: package names and versions of all dependencies and pre-dependencies; this also checks if the files are unmodified and appends a list of all modified files ''' if not package: # the kernel does not have a executable path but a package if 'ExecutablePath' not in self and self['ProblemType'] == 'KernelCrash': package = self['Package'] else: package = apport.fileutils.find_file_package(self['ExecutablePath']) if not package: return version = self.add_package(package) if version or 'SourcePackage' not in self: try: self['SourcePackage'] = packaging.get_source(package) except ValueError: # might not exist for non-free third-party packages or snaps pass if not version: return self['PackageArchitecture'] = packaging.get_architecture(package) # get set of all transitive dependencies dependencies = set([]) _transitive_dependencies(package, dependencies) # get dependency versions self['Dependencies'] = '' for dep in sorted(dependencies): try: v = packaging.get_version(dep) except ValueError: # can happen with uninstalled alternate dependencies continue if self['Dependencies']: self['Dependencies'] += '\n' self['Dependencies'] += '%s %s%s' % ( dep, v, self._customized_package_suffix(dep)) def add_snap_info(self, snap): '''Add info about an installed Snap This adds a Snap: field, containing name, version and channel. It adds a SnapSource: field, if the snap has a Launchpad contact defined. ''' self['Snap'] = '%s %s (%s)' % (snap.get("name"), snap.get("version"), snap.get("channel", "unknown")) # Automatically handle snaps which have a Launchpad contact defined if snap.get("contact"): # Parse Launchpad project (e.g. 'subiquity') or source package string # (e.g. 'ubuntu/+source/gnome-calculator') from snap 'contact' # Additionaly, extract any tag/tags defined in the contact URL. p = r'^https?:\/\/.*launchpad\.net\/((?:[^\/]+\/\+source\/)?[^\/]+)(?:.*field\.tags?=([^&]+))?' m = re.search(p, unquote(snap.get("contact", ""))) if m and m.group(1): self['SnapSource'] = m.group(1) if m.group(2): self['SnapTags'] = m.group(2) def add_os_info(self): '''Add operating system information. This adds: - DistroRelease: NAME and VERSION from /etc/os-release, or 'lsb_release -sir' output - Architecture: system architecture in distro specific notation - Uname: uname -srm output ''' if 'DistroRelease' not in self: self['DistroRelease'] = '%s %s' % apport.packaging.get_os_version() if 'Uname' not in self: u = os.uname() self['Uname'] = '%s %s %s' % (u[0], u[2], u[4]) if 'Architecture' not in self: self['Architecture'] = packaging.get_system_architecture() def add_user_info(self): '''Add information about the user. This adds: - UserGroups: system groups the user is in ''' # Use effective uid in case privileges were dropped user = pwd.getpwuid(os.geteuid())[0] groups = [name for name, p, gid, memb in grp.getgrall() if user in memb and gid < 1000] groups.sort() if groups: self['UserGroups'] = ' '.join(groups) else: # the docs indicate this is optional but a lot of tests expect # UserGroups to exist self['UserGroups'] = 'N/A' def _check_interpreted(self): '''Check if process is a script. Use ExecutablePath, ProcStatus and ProcCmdline to determine if process is an interpreted script. If so, set InterpreterPath accordingly. ''' if 'ExecutablePath' not in self: return exebasename = os.path.basename(self['ExecutablePath']) # check if we consider ExecutablePath an interpreter; we have to do # this, otherwise 'gedit /tmp/foo.txt' would be detected as interpreted # script as well if not any(filter(lambda i: fnmatch.fnmatch(exebasename, i), interpreters)): return # first, determine process name name = None for line in self['ProcStatus'].splitlines(): try: (k, v) = line.split('\t', 1) except ValueError: continue if k == 'Name:': name = v break if not name: return cmdargs = self['ProcCmdline'].split('\0') bindirs = ['/usr/bin/', '/usr/sbin/', '/bin/', '/sbin/'] # filter out interpreter options while len(cmdargs) >= 2 and cmdargs[1].startswith('-'): # check for -m if name.startswith('python') and cmdargs[1] == '-m' and len(cmdargs) >= 3: path = self._python_module_path(cmdargs[2]) if path: self['InterpreterPath'] = self['ExecutablePath'] self['ExecutablePath'] = path else: self['UnreportableReason'] = 'Cannot determine path of python module %s' % cmdargs[2] return del cmdargs[1] # catch scripts explicitly called with interpreter if len(cmdargs) >= 2: # ensure that cmdargs[1] is an absolute path if cmdargs[1].startswith('.') and 'ProcCwd' in self: cmdargs[1] = os.path.join(self['ProcCwd'], cmdargs[1]) if os.access(cmdargs[1], os.R_OK): self['InterpreterPath'] = self['ExecutablePath'] self['ExecutablePath'] = os.path.realpath(cmdargs[1]) # catch directly executed scripts if 'InterpreterPath' not in self and name != exebasename: for p in bindirs: if os.access(p + cmdargs[0], os.R_OK): argvexe = p + cmdargs[0] if os.path.basename(os.path.realpath(argvexe)) == name: self['InterpreterPath'] = self['ExecutablePath'] self['ExecutablePath'] = argvexe break # special case: crashes from twistd are usually the fault of the # launched program if 'InterpreterPath' in self and os.path.basename(self['ExecutablePath']) == 'twistd': self['InterpreterPath'] = self['ExecutablePath'] exe = self._twistd_executable() if exe: self['ExecutablePath'] = exe else: self['UnreportableReason'] = 'Cannot determine twistd client program' def _twistd_executable(self): '''Determine the twistd client program from ProcCmdline.''' args = self['ProcCmdline'].split('\0')[2:] # search for a -f/--file, -y/--python or -s/--source argument while args: arg = args[0].split('=', 1) if arg[0].startswith('--file') or arg[0].startswith('--python') or arg[0].startswith('--source'): if len(arg) == 2: return arg[1] else: return args[1] elif len(arg[0]) > 1 and arg[0][0] == '-' and arg[0][1] != '-': opts = arg[0][1:] if 'f' in opts or 'y' in opts or 's' in opts: return args[1] args.pop(0) return None @classmethod def _python_module_path(klass, module): '''Determine path of given Python module''' module = module.replace('/', '.').split('.') pathlist = sys.path path = None while module: name = module.pop(0) try: (fd, path, desc) = imp.find_module(name, pathlist) except ImportError: path = None break if fd: fd.close() pathlist = [path] if not module and desc[2] == imp.PKG_DIRECTORY: module = ['__init__'] if path and path.endswith('.pyc'): path = path[:-1] return path def add_proc_info(self, pid=None, proc_pid_fd=None, extraenv=[]): '''Add /proc/pid information. If neither pid nor self.pid are given, it defaults to the process' current pid and sets self.pid. This adds the following fields: - ExecutablePath: /proc/pid/exe contents; if the crashed process is interpreted, this contains the script path instead - InterpreterPath: /proc/pid/exe contents if the crashed process is interpreted; otherwise this key does not exist - ExecutableTimestamp: time stamp of ExecutablePath, for comparing at report time - ProcEnviron: A subset of the process' environment (only some standard variables that do not disclose potentially sensitive information, plus the ones mentioned in extraenv) - ProcCmdline: /proc/pid/cmdline contents - ProcStatus: /proc/pid/status contents - ProcMaps: /proc/pid/maps contents - ProcAttrCurrent: /proc/pid/attr/current contents, if not "unconfined" - CurrentDesktop: Value of $XDG_CURRENT_DESKTOP, if present - _LogindSession: logind cgroup path, if present (Used for filtering out crashes that happened in a session that is not running any more) ''' if not proc_pid_fd: if not pid: pid = self.pid or os.getpid() if not self.pid: self.pid = int(pid) pid = str(pid) if not _python2: try: proc_pid_fd = os.open('/proc/%s' % pid, os.O_RDONLY | os.O_PATH | os.O_DIRECTORY) except OSError as e: if e.errno in (errno.EPERM, errno.EACCES): raise ValueError('not accessible') if e.errno == errno.ENOENT: raise ValueError('invalid process') else: raise try: self['ProcCwd'] = _read_proc_link('cwd', pid, proc_pid_fd) except OSError: pass self.add_proc_environ(pid=pid, proc_pid_fd=proc_pid_fd, extraenv=extraenv) self['ProcStatus'] = _read_proc_file('status', pid, proc_pid_fd) self['ProcCmdline'] = _read_proc_file('cmdline', pid, proc_pid_fd).rstrip('\0') self['ProcMaps'] = _read_maps(proc_pid_fd) if 'ExecutablePath' not in self: try: self['ExecutablePath'] = _read_proc_link('exe', pid, proc_pid_fd) except OSError as e: if e.errno in (errno.EPERM, errno.EACCES): raise ValueError('not accessible') if e.errno == errno.ENOENT: raise ValueError('invalid process') else: raise for p in ('rofs', 'rwfs', 'squashmnt', 'persistmnt'): if self['ExecutablePath'].startswith('/%s/' % p): self['ExecutablePath'] = self['ExecutablePath'][len('/%s' % p):] break if not os.path.exists(self['ExecutablePath']): raise ValueError('%s does not exist' % self['ExecutablePath']) # check if we have an interpreted program self._check_interpreted() self['ExecutableTimestamp'] = str(int(os.stat(self['ExecutablePath']).st_mtime)) # make ProcCmdline ASCII friendly, do shell escaping self['ProcCmdline'] = self['ProcCmdline'].replace('\\', '\\\\').replace(' ', '\\ ').replace('\0', ' ') # grab AppArmor or SELinux context # If no LSM is loaded, reading will return -EINVAL try: # On Linux 2.6.28+, 'current' is world readable, but read() gives # EPERM; Python 2.5.3+ crashes on that (LP: #314065) if os.getuid() == 0: val = _read_proc_file('attr/current', pid, proc_pid_fd) if val != 'unconfined': self['ProcAttrCurrent'] = val except (IOError, OSError): pass ret = self.get_logind_session(pid, proc_pid_fd) if ret: self['_LogindSession'] = ret[0] def add_proc_environ(self, pid=None, extraenv=[], proc_pid_fd=None): '''Add environment information. If pid is not given, it defaults to the process' current pid. This adds the following fields: - ProcEnviron: A subset of the process' environment (only some standard variables that do not disclose potentially sensitive information, plus the ones mentioned in extraenv) - CurrentDesktop: Value of $XDG_CURRENT_DESKTOP, if present ''' safe_vars = ['SHELL', 'TERM', 'LANGUAGE', 'LANG', 'LC_CTYPE', 'LC_COLLATE', 'LC_TIME', 'LC_NUMERIC', 'LC_MONETARY', 'LC_MESSAGES', 'LC_PAPER', 'LC_NAME', 'LC_ADDRESS', 'LC_TELEPHONE', 'LC_MEASUREMENT', 'LC_IDENTIFICATION', 'LOCPATH'] + extraenv if not proc_pid_fd: if not pid: pid = os.getpid() pid = str(pid) if not _python2: proc_pid_fd = os.open('/proc/%s' % pid, os.O_RDONLY | os.O_PATH | os.O_DIRECTORY) self['ProcEnviron'] = '' env = _read_proc_file('environ', pid, proc_pid_fd).replace('\n', '\\n') if env.startswith('Error:'): self['ProcEnviron'] = env else: for line in env.split('\0'): if line.split('=', 1)[0] in safe_vars: if self['ProcEnviron']: self['ProcEnviron'] += '\n' self['ProcEnviron'] += line elif line.startswith('PATH='): p = line.split('=', 1)[1] if '/home' in p or '/tmp' in p: if self['ProcEnviron']: self['ProcEnviron'] += '\n' self['ProcEnviron'] += 'PATH=(custom, user)' elif p != '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games': if self['ProcEnviron']: self['ProcEnviron'] += '\n' self['ProcEnviron'] += 'PATH=(custom, no user)' elif line.startswith('XDG_RUNTIME_DIR='): if self['ProcEnviron']: self['ProcEnviron'] += '\n' self['ProcEnviron'] += 'XDG_RUNTIME_DIR=<set>' elif line.startswith('LD_PRELOAD='): if self['ProcEnviron']: self['ProcEnviron'] += '\n' self['ProcEnviron'] += 'LD_PRELOAD=<set>' elif line.startswith('LD_LIBRARY_PATH='): if self['ProcEnviron']: self['ProcEnviron'] += '\n' self['ProcEnviron'] += 'LD_LIBRARY_PATH=<set>' elif line.startswith('XDG_CURRENT_DESKTOP='): self['CurrentDesktop'] = line.split('=', 1)[1] def add_kernel_crash_info(self, debugdir=None): '''Add information from kernel crash. This needs a VmCore in the Report. ''' if 'VmCore' not in self: return unlink_core = False ret = False try: if hasattr(self['VmCore'], 'find'): (fd, core) = tempfile.mkstemp() os.write(fd, self['VmCore']) os.close(fd) unlink_core = True kver = self['Uname'].split()[1] command = ['crash', '/usr/lib/debug/boot/vmlinux-%s' % kver, core, ] try: p = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) except OSError: return False p.stdin.write('bt -a -f\n') p.stdin.write('ps\n') p.stdin.write('runq\n') p.stdin.write('quit\n') # FIXME: split it up nicely etc out = p.stdout.read() ret = (p.wait() == 0) if ret: self['Stacktrace'] = out finally: if unlink_core: os.unlink(core) return ret def add_gdb_info(self, rootdir=None, gdb_sandbox=None): '''Add information from gdb. This requires that the report has a CoreDump and an ExecutablePath. This adds the following fields: - Registers: Output of gdb's 'info registers' command - Disassembly: Output of gdb's 'x/16i $pc' command - Stacktrace: Output of gdb's 'bt full' command - ThreadStacktrace: Output of gdb's 'thread apply all bt full' command - StacktraceTop: simplified stacktrace (topmost 5 functions) for inline inclusion into bug reports and easier processing - AssertionMessage: Value of __abort_msg, __glib_assert_msg, or __nih_abort_msg if present The optional rootdir can specify a root directory which has the executable, libraries, and debug symbols. This does not require chroot() or root privileges, it just instructs gdb to search for the files there. Raises a IOError if the core dump is invalid/truncated, or OSError if calling gdb fails, or FileNotFoundError if gdb or the crashing executable cannot be found. ''' if 'CoreDump' not in self or 'ExecutablePath' not in self: return gdb_reports = {'Registers': 'info registers', 'Disassembly': 'x/16i $pc', 'Stacktrace': 'bt full', 'ThreadStacktrace': 'thread apply all bt full', 'AssertionMessage': 'print __abort_msg->msg', 'GLibAssertionMessage': 'print __glib_assert_msg', 'NihAssertionMessage': 'print (char*) __nih_abort_msg'} gdb_cmd, environ = self.gdb_command(rootdir, gdb_sandbox) if not gdb_cmd: raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), 'gdb not found in retracing env') # limit maximum backtrace depth (to avoid looped stacks) gdb_cmd += ['--batch', '--ex', 'set backtrace limit 2000'] value_keys = [] # append the actual commands and something that acts as a separator for name, cmd in gdb_reports.items(): value_keys.append(name) gdb_cmd += ['--ex', 'p -99', '--ex', cmd] # End with our separator, ensures gdb's return code is as expected value_keys.append('separator') gdb_cmd += ['--ex', 'p -99'] out = _command_output(gdb_cmd, env=environ).decode('UTF-8', errors='replace') # check for truncated stack trace if 'is truncated: expected core file size' in out or \ 'is not a core dump: file truncated' in out: if 'warning:' in out: warnings = '\n'.join([line for line in out.splitlines() if 'warning:' in line]) elif 'Warning:' in out: warnings = '\n'.join([line for line in out.splitlines() if 'Warning:' in line]) else: warnings = out.splitlines()[0] reason = 'Invalid core dump: ' + warnings.strip() self['UnreportableReason'] = reason raise IOError(reason) elif out.split('\n')[0].endswith('No such file or directory.'): raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), 'executable file for coredump not found') # split the output into the various fields part_re = re.compile(r'^\$\d+\s*=\s*-99$', re.MULTILINE) parts = part_re.split(out) # drop the gdb startup text prior to first separator parts.pop(0) for part in parts: self[value_keys.pop(0)] = part.replace('\n\n', '\n.\n').strip() # glib's assertion has precedence, since it internally uses # abort(), and then glib's __abort_msg is bogus if 'GLibAssertionMessage' in self: if '"ERROR:' in self['GLibAssertionMessage']: self['AssertionMessage'] = self['GLibAssertionMessage'] del self['GLibAssertionMessage'] # same reason for libnih's assertion messages if 'NihAssertionMessage' in self: if self['NihAssertionMessage'].startswith('$'): self['AssertionMessage'] = self['NihAssertionMessage'] del self['NihAssertionMessage'] # clean up AssertionMessage if 'AssertionMessage' in self: # chop off "$n = 0x...." prefix, drop empty ones m = re.match(r'^\$\d+\s+=\s+0x[0-9a-fA-F]+\s+"(.*)"\s*$', self['AssertionMessage']) if m: self['AssertionMessage'] = m.group(1) if self['AssertionMessage'].endswith('\\n'): self['AssertionMessage'] = self['AssertionMessage'][0:-2] else: del self['AssertionMessage'] if 'Stacktrace' in self: self._gen_stacktrace_top() addr_signature = self.crash_signature_addresses() if addr_signature: self['StacktraceAddressSignature'] = addr_signature def _gen_stacktrace_top(self): '''Build field StacktraceTop as the top five functions of Stacktrace. Signal handler invocations and related functions are skipped since they are generally not useful for triaging and duplicate detection. ''' unwind_functions = set(['g_logv', 'g_log', 'IA__g_log', 'IA__g_logv', 'g_assert_warning', 'IA__g_assert_warning', '__GI_abort', '_XError']) toptrace = [''] * 5 depth = 0 unwound = False unwinding = False unwinding_xerror = False bt_fn_re = re.compile(r'^#(\d+)\s+(?:0x(?:\w+)\s+in\s+\*?(.*)|(<signal handler called>)\s*)$') bt_fn_noaddr_re = re.compile(r'^#(\d+)\s+(?:(.*)|(<signal handler called>)\s*)$') # some internal functions like the SSE stubs cause unnecessary jitter ignore_functions_re = re.compile(r'^(__.*_s?sse\d+(?:_\w+)?|__kernel_vsyscall)$') for line in self['Stacktrace'].splitlines(): m = bt_fn_re.match(line) if not m: m = bt_fn_noaddr_re.match(line) if not m: continue if not unwound or unwinding: if m.group(2): fn = m.group(2).split()[0].split('(')[0] else: fn = None # handle XErrors if unwinding_xerror: if fn.startswith('_X') or fn in ['handle_response', 'handle_error', 'XWindowEvent']: continue else: unwinding_xerror = False if m.group(3) or fn in unwind_functions: unwinding = True depth = 0 toptrace = [''] * 5 if m.group(3): # we stop unwinding when we found a <signal handler>, # but we continue unwinding otherwise, as e. g. a glib # abort is usually sitting on top of an XError unwound = True if fn == '_XError': unwinding_xerror = True continue else: unwinding = False frame = m.group(2) or m.group(3) function = frame.split()[0] if depth < len(toptrace) and not ignore_functions_re.match(function): toptrace[depth] = frame depth += 1 self['StacktraceTop'] = '\n'.join(toptrace).strip() def add_hooks_info(self, ui, package=None, srcpackage=None): '''Run hook script for collecting package specific data. A hook script needs to be in _hook_dir/<Package>.py or in _common_hook_dir/*.py and has to contain a function 'add_info(report, ui)' that takes and modifies a Report, and gets an UserInterface reference for interactivity. return True if the hook requested to stop the report filing process, False otherwise. ''' ret = self._add_hooks_info(ui, package, srcpackage) kill_pkttyagent() return ret def _add_hooks_info(self, ui, package, srcpackage): # determine package names, unless already given as arguments # avoid path traversal if not package: package = self.get('Package') if package: package = package.split()[0] if '/' in package: self['UnreportableReason'] = 'invalid Package: %s' % package return if not srcpackage: srcpackage = self.get('SourcePackage') if srcpackage: srcpackage = srcpackage.split()[0] if '/' in srcpackage: self['UnreportableReason'] = 'invalid SourcePackage: %s' % package return hook_dirs = [_hook_dir] # also search hooks in /opt, when program is from there opt_path = None exec_path = os.path.realpath(self.get('ExecutablePath', '')) if exec_path.startswith(_opt_dir): opt_path = exec_path elif package: # check package contents try: for f in apport.packaging.get_files(package): if f.startswith(_opt_dir) and os.path.isfile(f): opt_path = f break except ValueError: # uninstalled package pass if opt_path: while len(opt_path) >= len(_opt_dir): hook_dirs.append(os.path.join(opt_path, 'share', 'apport', 'package-hooks')) opt_path = os.path.dirname(opt_path) # common hooks for hook in glob.glob(_common_hook_dir + '/*.py'): if _run_hook(self, ui, hook): return True # binary package hook if package: for hook_dir in hook_dirs: if _run_hook(self, ui, os.path.join(hook_dir, package + '.py')): return True # source package hook if srcpackage: for hook_dir in hook_dirs: if _run_hook(self, ui, os.path.join(hook_dir, 'source_%s.py' % srcpackage)): return True return False def search_bug_patterns(self, url): '''Check bug patterns loaded from the specified url. Return bug URL on match, or None otherwise. The url must refer to a valid XML document with the following syntax: root element := <patterns> patterns := <pattern url="http://bug.url"> * pattern := <re key="report_key">regular expression*</re> + For example: <?xml version="1.0"?> <patterns> <pattern url="http://bugtracker.net/bugs/1"> <re key="Foo">ba.*r</re> </pattern> <pattern url="http://bugtracker.net/bugs/2"> <re key="Package">^\\S* 1-2$</re> <!-- test for a particular version --> <re key="Foo">write_(hello|goodbye)</re> </pattern> </patterns> ''' # some distros might not want to support these if not url: return try: f = urlopen(url) patterns = f.read().decode('UTF-8', errors='replace') f.close() except (IOError, URLError): # doesn't exist or failed to load return if '<title>404 Not Found' in patterns: return url = _check_bug_patterns(self, patterns) if url: return url return None def _get_ignore_dom(self): '''Read ignore list XML file and return a DOM tree. Return an empty DOM tree if file does not exist. Raises ValueError if the file exists but is invalid XML. ''' # Properly handle dropped privileges homedir = pwd.getpwuid(os.geteuid())[5] ifpath = _ignore_file.replace("~", homedir) contents = '' fd = None f = None try: fd = os.open(ifpath, os.O_NOFOLLOW | os.O_RDONLY) st = os.fstat(fd) if stat.S_ISREG(st.st_mode): f = os.fdopen(fd, 'r') # Limit size to prevent DoS contents = f.read(50000) except (IOError, OSError): pass finally: if f is not None: f.close() elif fd is not None: os.close(fd) if contents == '': # create a document from scratch dom = xml.dom.getDOMImplementation().createDocument(None, 'apport', None) else: try: dom = xml.dom.minidom.parseString(contents) except ExpatError as e: raise ValueError('%s has invalid format: %s' % (_ignore_file, str(e))) # remove whitespace so that writing back the XML does not accumulate # whitespace dom.documentElement.normalize() _dom_remove_space(dom.documentElement) return dom def check_ignored(self): '''Check if current report should not be presented. Reports can be suppressed by per-user blacklisting in ~/.apport-ignore.xml (in the real UID's home) and /etc/apport/blacklist.d/. For environments where you are only interested in crashes of some programs, you can also create a whitelist in /etc/apport/whitelist.d/, everything which does not match gets ignored then. This requires the ExecutablePath attribute. Throws a ValueError if the file has an invalid format. Privileges may need to be dropped before calling this. ''' assert 'ExecutablePath' in self # check blacklist try: for f in os.listdir(_blacklist_dir): try: with open(os.path.join(_blacklist_dir, f)) as fd: for line in fd: if line.strip() == self['ExecutablePath']: return True except IOError: continue except OSError: pass # check whitelist try: whitelist = set() for f in os.listdir(_whitelist_dir): try: with open(os.path.join(_whitelist_dir, f)) as fd: for line in fd: whitelist.add(line.strip()) except IOError: continue if whitelist and self['ExecutablePath'] not in whitelist: return True except OSError: pass try: dom = self._get_ignore_dom() except (ValueError, KeyError): apport.error('Could not get ignore file:') traceback.print_exc() return False try: cur_mtime = int(os.stat(self['ExecutablePath']).st_mtime) except OSError: # if it does not exist any more, do nothing return False # search for existing entry and update it try: for ignore in dom.getElementsByTagName('ignore'): if ignore.getAttribute('program') == self['ExecutablePath']: if float(ignore.getAttribute('mtime')) >= cur_mtime: return True except (ValueError, KeyError): pass return False def mark_ignore(self): '''Ignore future crashes of this executable. Add a ignore list entry for this report to ~/.apport-ignore.xml, so that future reports for this ExecutablePath are not presented to the user any more. Throws a ValueError if the file already exists and has an invalid format. Privileges may need to be dropped before calling this. ''' assert 'ExecutablePath' in self dom = self._get_ignore_dom() try: mtime = str(int(os.stat(self['ExecutablePath']).st_mtime)) except OSError as e: # file went away underneath us, ignore if e.errno == errno.ENOENT: return else: raise # search for existing entry and update it for ignore in dom.getElementsByTagName('ignore'): if ignore.getAttribute('program') == self['ExecutablePath']: ignore.setAttribute('mtime', mtime) break else: # none exists yet, create new ignore node if none exists yet e = dom.createElement('ignore') e.setAttribute('program', self['ExecutablePath']) e.setAttribute('mtime', mtime) dom.documentElement.appendChild(e) # Write back file # Properly handle dropped privileges homedir = pwd.getpwuid(os.geteuid())[5] ignore_file_path = _ignore_file.replace("~", homedir) with open(ignore_file_path, 'w') as fd: dom.writexml(fd, addindent=' ', newl='\n') dom.unlink() def has_useful_stacktrace(self): '''Check whether StackTrace can be considered 'useful'. The current heuristic is to consider it useless if it either is shorter than three lines and has any unknown function, or for longer traces, a minority of known functions. ''' if not self.get('StacktraceTop'): return False unknown_fn = [f.startswith('??') for f in self['StacktraceTop'].splitlines()] if len(unknown_fn) < 3: return unknown_fn.count(True) == 0 return unknown_fn.count(True) <= len(unknown_fn) / 2. def stacktrace_top_function(self): '''Return topmost function in StacktraceTop''' for line in self.get('StacktraceTop', '').splitlines(): fname = line.split('(')[0].strip() if fname != '??': return fname return None def standard_title(self): '''Create an appropriate title for a crash database entry. This contains the topmost function name from the stack trace and the signal (for signal crashes) or the Python exception (for unhandled Python exceptions). Return None if the report is not a crash or a default title could not be generated. ''' # assertion failure if self.get('Signal') == '6' and \ 'ExecutablePath' in self and \ 'AssertionMessage' in self: return '%s assert failure: %s' % ( os.path.basename(self['ExecutablePath']), self['AssertionMessage']) # signal crash if 'Signal' in self and 'ExecutablePath' in self and 'StacktraceTop' in self: signal_names = { '4': 'SIGILL', '6': 'SIGABRT', '8': 'SIGFPE', '11': 'SIGSEGV', '13': 'SIGPIPE'} fn = self.stacktrace_top_function() if fn: fn = ' in %s()' % fn else: fn = '' arch_mismatch = '' if 'Architecture' in self and 'PackageArchitecture' in self and self['Architecture'] != self['PackageArchitecture'] and self['PackageArchitecture'] != 'all': arch_mismatch = ' [non-native %s package]' % self['PackageArchitecture'] return '%s crashed with %s%s%s' % ( os.path.basename(self['ExecutablePath']), signal_names.get(self.get('Signal'), 'signal ' + self.get('Signal')), fn, arch_mismatch ) # Python exception if 'Traceback' in self and 'ExecutablePath' in self: trace = self['Traceback'].splitlines() if len(trace) < 1: return None if len(trace) < 3: return '%s crashed with %s' % ( os.path.basename(self['ExecutablePath']), trace[0]) trace_re = re.compile(r'^\s*File\s*"(\S+)".* in (.+)$') i = len(trace) - 1 function = 'unknown' while i >= 0: m = trace_re.match(trace[i]) if m: module_path = m.group(1) function = m.group(2) break i -= 1 path = os.path.basename(self['ExecutablePath']) last_line = trace[-1] exception = last_line.split(':')[0] m = re.match('^%s: (.+)$' % re.escape(exception), last_line) if m: message = m.group(1) else: message = None if function == '<module>': if module_path == self['ExecutablePath']: context = '__main__' else: # Maybe use os.path.basename? context = module_path else: context = '%s()' % function title = '%s crashed with %s in %s' % ( path, exception, context ) if message: title += ': %s' % message return title # package problem if self.get('ProblemType') == 'Package' and 'Package' in self: title = 'package %s failed to install/upgrade' % \ self['Package'] if self.get('ErrorMessage'): title += ': ' + self['ErrorMessage'].splitlines()[-1] return title if self.get('ProblemType') == 'KernelOops' and 'OopsText' in self: oops = self['OopsText'] if oops.startswith('------------[ cut here ]------------'): title = oops.split('\n', 2)[1] else: title = oops.split('\n', 1)[0] return title if self.get('ProblemType') == 'KernelOops' and 'Failure' in self: # Title the report with suspend or hibernate as appropriate, # and mention any non-free modules loaded up front. title = '' if 'MachineType' in self: title += '[' + self['MachineType'] + '] ' title += self['Failure'] + ' failure' if 'NonfreeKernelModules' in self: title += ' [non-free: ' + self['NonfreeKernelModules'] + ']' title += '\n' return title return None def obsolete_packages(self): '''Return list of obsolete packages in Package and Dependencies.''' obsolete = [] for line in (self.get('Package', '') + '\n' + self.get('Dependencies', '')).splitlines(): if not line: continue pkg, ver = line.split()[:2] avail = packaging.get_available_version(pkg) if ver is not None and ver != 'None' and avail is not None and packaging.compare_versions(ver, avail) < 0: obsolete.append(pkg) return obsolete def crash_signature(self): '''Get a signature string for a crash. This is suitable for identifying duplicates. For signal crashes this the concatenation of ExecutablePath, Signal number, and StacktraceTop function names, separated by a colon. If StacktraceTop has unknown functions or the report lacks any of those fields, return None. In this case, you can use crash_signature_addresses() to get a less precise duplicate signature based on addresses instead of symbol names. For assertion failures, it is the concatenation of ExecutablePath and assertion message, separated by colons. For Python crashes, this concatenates the ExecutablePath, exception name, and Traceback function names, again separated by a colon. For suspend/resume failures, this concatenates whether it was a suspend or resume failure with the hardware identifier and the BIOS version, if it exists. ''' if 'ExecutablePath' not in self: if not self['ProblemType'] in ('KernelCrash', 'KernelOops'): return None # kernel crash if 'Stacktrace' in self and self['ProblemType'] == 'KernelCrash': sig = 'kernel' regex = re.compile(r'^\s*\#\d+\s\[\w+\]\s(\w+)') for line in self['Stacktrace'].splitlines(): m = regex.match(line) if m: sig += ':' + (m.group(1)) return sig # assertion failures if self.get('Signal') == '6' and 'AssertionMessage' in self: sig = self['ExecutablePath'] + ':' + self['AssertionMessage'] # filter out addresses, to help match duplicates more sanely return re.sub(r'0x[0-9a-f]{6,}', 'ADDR', sig) # signal crashes if 'StacktraceTop' in self and 'Signal' in self: sig = '%s:%s' % (self['ExecutablePath'], self['Signal']) bt_fn_re = re.compile(r'^(?:([\w:~]+).*|(<signal handler called>)\s*)$') lines = self['StacktraceTop'].splitlines() if len(lines) < 2: return None for line in lines: m = bt_fn_re.match(line) if m: sig += ':' + (m.group(1) or m.group(2)) else: # this will also catch ?? return None return sig # Python crashes if 'Traceback' in self: trace = self['Traceback'].splitlines() sig = '' if len(trace) == 1: # sometimes, Python exceptions do not have file references m = re.match(r'(\w+): ', trace[0]) if m: return self['ExecutablePath'] + ':' + m.group(1) else: return None elif len(trace) < 3: return None loc_re = re.compile(r'^\s+File "([^"]+).*line (\d+).*\sin (.*)$') for line in trace: m = loc_re.match(line) if m: # if we have a function name, use this; for a a crash # outside of a function/method, fall back to the source # file location if m.group(3) != '<module>': sig += ':' + m.group(3) else: # resolve symlinks for more stable signatures f = m.group(1) if os.path.islink(f): f = os.path.realpath(f) sig += ':%s@%s' % (f, m.group(2)) exc_name = trace[-1].split(':')[0] try: exc_name += '(%s)' % self['_PythonExceptionQualifier'] except KeyError: pass return self['ExecutablePath'] + ':' + exc_name + sig if self['ProblemType'] == 'KernelOops' and 'Failure' in self: if 'suspend' in self['Failure'] or 'resume' in self['Failure']: # Suspend / resume failure sig = self['Failure'] if self.get('MachineType'): sig += ':%s' % self['MachineType'] if self.get('dmi.bios.version'): sig += ':%s' % self['dmi.bios.version'] return sig # KernelOops crashes if 'OopsText' in self: in_trace_body = False parts = [] for line in self['OopsText'].split('\n'): if line.startswith('BUG: unable to handle'): parsed = re.search('^BUG: unable to handle (.*) at ', line) if parsed: match = parsed.group(1) assert match, 'could not parse expected problem type line: %s' % line parts.append(match) if line.startswith('IP: '): match = self._extract_function_and_address(line) if match: parts.append(match) elif line.startswith('Call Trace:'): in_trace_body = True elif in_trace_body: match = None if line and line[0] == ' ': match = self._extract_function_and_address(line) if match: parts.append(match) else: in_trace_body = False if parts: return ':'.join(parts) return None def _extract_function_and_address(self, line): parsed = re.search(r'\[.*\] (.*)$', line) if parsed: match = parsed.group(1) assert match, 'could not parse expected call trace line: %s' % line if match[0] != '?': return match return None def crash_signature_addresses(self): '''Compute heuristic duplicate signature for a signal crash. This should be used if crash_signature() fails, i. e. Stacktrace does not have enough symbols. This approach only uses addresses in the stack trace and does not rely on symbol resolution. As we can't unwind these stack traces, we cannot limit them to the top five frames and thus will end up with several or many different signatures for a particular crash. But these can be computed and synchronously checked with a crash database at the client side, which avoids having to upload and process the full report. So on the server-side crash database we will only have to deal with all the equivalence classes (i. e. same crash producing a number of possible signatures) instead of every single report. Return None when signature cannot be determined. ''' if 'ProcMaps' not in self or 'Stacktrace' not in self or 'Signal' not in self: return None if 'Errno 13' in self['ProcMaps']: return None stack = [] failed = 0 for line in self['Stacktrace'].splitlines(): if line.startswith('#'): addr = line.split()[1] if not addr.startswith('0x'): continue addr = int(addr, 16) # we do want to know about ValueErrors here, so don't catch # ignore impossibly low addresses; these are usually artifacts # from gdb when not having debug symbols if addr < 0x1000: continue offset = self._address_to_offset(addr) if offset: # avoid ':' in ELF paths, we use that as separator stack.append(offset.replace(':', '..')) else: failed += 1 # stack unwinding chops off ~ 5 functions, and we need some more # accuracy because we do not have symbols; but beyond a depth of 15 # we get too much noise, so we can abort there if len(stack) >= 15: break # we only accept a small minority (< 20%) of failed resolutions, otherwise we # discard if failed > 0 and len(stack) / failed < 4: return None # we also discard if the trace is too short if (failed == 0 and len(stack) < 3) or (failed > 0 and len(stack) < 6): return None return '%s:%s:%s' % ( self['ExecutablePath'], self['Signal'], ':'.join(stack)) def anonymize(self): '''Remove user identifying strings from the report. This particularly removes the user name, host name, and IPs from attributes which contain data read from the environment, and removes the ProcCwd attribute completely. ''' replacements = [] # Do not replace "root" if (os.getuid() > 0): # Use effective uid in case privileges were dropped p = pwd.getpwuid(os.geteuid()) if len(p[0]) >= 2: replacements.append((re.compile(r'\b%s\b' % re.escape(p[0])), 'username')) replacements.append((re.compile(r'\b%s\b' % re.escape(p[5])), '/home/username')) for s in p[4].split(','): s = s.strip() if len(s) > 2: replacements.append((re.compile(r'(\b|\s)%s\b' % re.escape(s)), r'\1User Name')) hostname = os.uname()[1] if len(hostname) >= 2: replacements.append((re.compile(r'\b%s\b' % re.escape(hostname)), 'hostname')) try: del self['ProcCwd'] except KeyError: pass for k in self: is_proc_field = k.startswith('Proc') and k not in [ 'ProcCpuinfo', 'ProcMaps', 'ProcStatus', 'ProcInterrupts', 'ProcModules'] if is_proc_field or 'Stacktrace' in k or k in ['Traceback', 'PythonArgs', 'Title', 'JournalErrors']: if not hasattr(self[k], 'isspace'): continue for (pattern, repl) in replacements: if type(self[k]) == bytes: self[k] = pattern.sub(repl, self[k].decode('UTF-8', errors='replace')).encode('UTF-8') else: self[k] = pattern.sub(repl, self[k]) def gdb_command(self, sandbox, gdb_sandbox=None): '''Build gdb command for this report. This builds a gdb command for processing the given report, by setting the file to the ExecutablePath/InterpreterPath, unpacking the core dump and pointing "core-file" to it (if the report has a core dump), and setting up the paths when calling gdb in a package sandbox. When available, this calls "gdb-multiarch" instead of "gdb", for processing crash reports from foreign architectures. Return argv list for gdb and any environment variables. ''' assert 'ExecutablePath' in self executable = self.get('InterpreterPath', self['ExecutablePath']) same_arch = False if 'Architecture' in self and \ self['Architecture'] == packaging.get_system_architecture(): same_arch = True gdb_sandbox_bin = (os.path.join(gdb_sandbox, 'usr', 'bin') if gdb_sandbox else None) gdb_path = _which_extrapath('gdb', gdb_sandbox_bin) if not gdb_path: return '', '' command = [gdb_path] environ = None if not same_arch: # check if we have gdb-multiarch ma = _which_extrapath('gdb-multiarch', gdb_sandbox_bin) if ma: command = [ma] else: sys.stderr.write( 'WARNING: Please install gdb-multiarch for processing ' 'reports from foreign architectures. Results with "gdb" ' 'will be very poor.\n') if sandbox: native_multiarch = "x86_64-linux-gnu" # N.B. set solib-absolute-prefix is an alias for set sysroot command += ['--ex', 'set debug-file-directory %s/usr/lib/debug' % sandbox, '--ex', 'set solib-absolute-prefix ' + sandbox, '--ex', 'add-auto-load-safe-path ' + sandbox, # needed to fix /lib64/ld-linux-x86-64.so.2 broken # symlink '--ex', 'set solib-search-path %s/lib/%s:%s/usr/lib/%s' % \ (sandbox, native_multiarch, sandbox, native_multiarch)] if gdb_sandbox: ld_lib_path = '%s/lib:%s/lib/%s:%s/usr/lib/%s:%s/usr/lib' % \ (gdb_sandbox, gdb_sandbox, native_multiarch, gdb_sandbox, native_multiarch, gdb_sandbox) pyhome = '%s/usr' % gdb_sandbox # env settings need to be modified for gdb in a sandbox environ = {'LD_LIBRARY_PATH': ld_lib_path, 'PYTHONHOME': pyhome, 'GCONV_PATH': '%s/usr/lib/%s/gconv' % (gdb_sandbox, native_multiarch)} command.insert(0, '%s/lib/%s/ld-linux-x86-64.so.2' % (gdb_sandbox, native_multiarch)) command += ['--ex', 'set data-directory %s/usr/share/gdb' % gdb_sandbox] executable = sandbox + '/' + executable command += ['--ex', 'file "%s"' % executable] if 'CoreDump' in self: if hasattr(self['CoreDump'], 'find'): (fd, core) = tempfile.mkstemp(prefix='apport_core_') atexit.register(os.unlink, core) os.write(fd, self['CoreDump']) os.close(fd) elif hasattr(self['CoreDump'], 'gzipvalue'): (fd, core) = tempfile.mkstemp(prefix='apport_core_') atexit.register(os.unlink, core) os.close(fd) with open(core, 'wb') as f: self['CoreDump'].write(f) else: # value is a file path core = self['CoreDump'][0] command += ['--ex', 'core-file ' + core] return command, environ def _address_to_offset(self, addr): '''Resolve a memory address to an ELF name and offset. This can be used for building duplicate signatures from non-symbolic stack traces. These often do not have enough symbols available to resolve function names, but taking the raw addresses also is not suitable due to ASLR. But the offsets within a library should be constant between crashes (assuming the same version of all libraries). This needs and uses the "ProcMaps" field to resolve addresses. Return 'path+offset' when found, or None if address is not in any mapped range. ''' self._build_proc_maps_cache() for (start, end, elf) in self._proc_maps_cache: if start <= addr and end >= addr: return '%s+%x' % (elf, addr - start) return None def _build_proc_maps_cache(self): '''Generate self._proc_maps_cache from ProcMaps field. This only gets done once. ''' if self._proc_maps_cache: return assert 'ProcMaps' in self self._proc_maps_cache = [] # library paths might have spaces, so we need to make some assumptions # about the intermediate fields. But we know that in between the pre-last # data field and the path there are many spaces, while between the # other data fields there is only one. So we take 2 or more spaces as # the separator of the last data field and the path. fmt = re.compile(r'^([0-9a-fA-F]+)-([0-9a-fA-F]+).*\s{2,}(\S.*$)') fmt_unknown = re.compile(r'^([0-9a-fA-F]+)-([0-9a-fA-F]+)\s') for line in self['ProcMaps'].splitlines(): if not line.strip(): continue m = fmt.match(line) if not m: # ignore lines with unknown ELF if fmt_unknown.match(line): continue # but complain otherwise, as this means we encounter an # architecture or new kernel version where the format changed assert m, 'cannot parse ProcMaps line: ' + line self._proc_maps_cache.append((int(m.group(1), 16), int(m.group(2), 16), m.group(3))) @classmethod def get_logind_session(klass, pid=None, proc_pid_fd=None): '''Get logind session path and start time. Return (session_id, session_start_timestamp) if process is in a logind session, or None otherwise. ''' if not _python2 and proc_pid_fd is not None: cgroup_file = os.open('cgroup', os.O_RDONLY, dir_fd=proc_pid_fd) else: cgroup_file = "/proc/%s/cgroup" % pid # determine cgroup try: with io.open(cgroup_file) as f: for line in f: line = line.strip() if 'name=systemd:' in line and line.endswith('.scope') and '/session-' in line: my_session = line.split('/session-', 1)[1][:-6] break else: return None # determine session creation time session_start_time = os.stat('/run/systemd/sessions/' + my_session).st_mtime except (IOError, OSError): return None return (my_session, session_start_time) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/sandboxutils.py���������������������������������������������������������������0000664�0000000�0000000�00000025770�14416106601�014462� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Functions to manage sandboxes''' # Copyright (C) 2006 - 2013 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # Kyle Nitzsche <kyle.nitzsche@canonical.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import atexit, os, os.path, re, shutil, tempfile import apport def needed_packages(report): '''Determine necessary packages for given report. Return list of (pkgname, version) pairs. version might be None for unknown package versions. ''' pkgs = {} # first, grab the versions that we captured at crash time for line in (report.get('Package', '') + '\n' + report.get('Dependencies', '')).splitlines(): if not line.strip(): continue try: (pkg, version) = line.split()[:2] except ValueError: apport.warning('invalid Package/Dependencies line: %s', line) # invalid line, ignore continue pkgs[pkg] = version return [(p, v) for (p, v) in pkgs.items()] def report_package_versions(report): '''Return package -> version dictionary from report''' pkg_vers = {} for line in (report.get('Package', '') + '\n' + report.get('Dependencies', '')).splitlines(): if not line.strip(): continue try: (pkg, version) = line.split()[:2] except ValueError: apport.warning('invalid Package/Dependencies line: %s', line) # invalid line, ignore continue pkg_vers[pkg] = version return pkg_vers def needed_runtime_packages(report, sandbox, pkgmap_cache_dir, pkg_versions, verbose=False): '''Determine necessary runtime packages for given report. This determines libraries dynamically loaded at runtime in two cases: 1. The executable has already run: /proc/pid/maps is used, from the report 2. The executable has not already run: shared_libraries() is used The libraries are resolved to the packages that installed them. Return list of (pkgname, None) pairs. When pkgmap_cache_dir is specified, it is used as a cache for get_file_package(). ''' # check list of libraries that the crashed process referenced at # runtime and warn about those which are not available pkgs = set() libs = set() if 'ProcMaps' in report: for line in report['ProcMaps'].splitlines(): if not line.strip(): continue cols = line.split() if len(cols) in (6, 7) and 'x' in cols[1] and '.so' in cols[5]: lib = os.path.realpath(cols[5]) libs.add(lib) else: # 'ProcMaps' key is absent in apport-valgrind use case libs = apport.fileutils.shared_libraries(report['ExecutablePath']).values() if not os.path.exists(pkgmap_cache_dir): os.makedirs(pkgmap_cache_dir) # grab as much as we can for line in libs: pkg = apport.packaging.get_file_package(line, True, pkgmap_cache_dir, release=report['DistroRelease'], arch=report.get('Architecture')) if pkg: if verbose: apport.log('dynamically loaded %s needs package %s, queueing' % (line, pkg)) pkgs.add(pkg) else: apport.warning('%s is needed, but cannot be mapped to a package', line) return [(p, pkg_versions.get(p)) for p in pkgs] def make_sandbox(report, config_dir, cache_dir=None, sandbox_dir=None, extra_packages=[], verbose=False, log_timestamps=False, dynamic_origins=False): '''Build a sandbox with the packages that belong to a particular report. This downloads and unpacks all packages from the report's Package and Dependencies fields, plus all packages that ship the files from ProcMaps (often, runtime plugins do not appear in Dependencies), plus optionally some extra ones, for the distro release and architecture of the report. For unpackaged executables, there are no Dependencies. Packages for shared libaries are unpacked. report is an apport.Report object to build a sandbox for. Presence of the Package field determines whether to determine dependencies through packaging (via the optional report['Dependencies'] field), or through ldd via needed_runtime_packages() -> shared_libraries(). Usually report['Architecture'] and report['Uname'] are present. config_dir points to a directory with by-release configuration files for the packaging system, or "system"; this is passed to apport.packaging.install_packages(), see that method for details. cache_dir points to a directory where the downloaded packages and debug symbols are kept, which is useful if you create sandboxes very often. If not given, the downloaded packages get deleted at program exit. sandbox_dir points to a directory with a permanently unpacked sandbox with the already unpacked packages. This speeds up operations even further if you need to create sandboxes for different reports very often; but the sandboxes can become very big over time, and you must ensure that an already existing sandbox matches the DistroRelease: and Architecture: of report. If not given, a temporary directory will be created which gets deleted at program exit. extra_packages can specify a list of additional packages to install which are not derived from the report and will be installed along with their dependencies. If verbose is True (False by default), this will write some additional logging to stdout. If log_timestamps is True, these log messages will be prefixed with the current time. If dynamic_origins is True (False by default), the sandbox will be built with packages from foreign origins that appear in the report's Packages:/Dependencies:. Return a tuple (sandbox_dir, cache_dir, outdated_msg). ''' # sandbox if sandbox_dir: sandbox_dir = os.path.abspath(sandbox_dir) if not os.path.isdir(sandbox_dir): os.makedirs(sandbox_dir) permanent_rootdir = True else: sandbox_dir = tempfile.mkdtemp(prefix='apport_sandbox_') atexit.register(shutil.rmtree, sandbox_dir) permanent_rootdir = False # cache if cache_dir: cache_dir = os.path.abspath(cache_dir) else: cache_dir = tempfile.mkdtemp(prefix='apport_cache_') atexit.register(shutil.rmtree, cache_dir) pkgmap_cache_dir = os.path.join(cache_dir, report['DistroRelease']) pkgs = [] # when ProcMaps is available and we don't have any third-party packages, it # is enough to get the libraries in it and map their files to packages; # otherwise, get Package/Dependencies if 'ProcMaps' not in report or '[origin' in (report.get('Package', '') + report.get('Dependencies', '')): pkgs = needed_packages(report) # add user-specified extra packages, if any extra_pkgs = [] for p in extra_packages: extra_pkgs.append((p, None)) if config_dir == 'system': config_dir = None origins = None if dynamic_origins: pkg_list = report.get('Package', '') + '\n' + report.get('Dependencies', '') m = re.compile(r'\[origin: ([a-zA-Z0-9][a-zA-Z0-9\+\.\-]+)\]') origins = set(m.findall(pkg_list)) if origins: apport.log("Origins: %s" % origins) # unpack packages, if any, using cache and sandbox try: outdated_msg = apport.packaging.install_packages( sandbox_dir, config_dir, report['DistroRelease'], pkgs, verbose, cache_dir, permanent_rootdir, architecture=report.get('Architecture'), origins=origins) except SystemError as e: apport.fatal(str(e)) # install the extra packages and their deps if extra_pkgs: try: outdated_msg += apport.packaging.install_packages( sandbox_dir, config_dir, report['DistroRelease'], extra_pkgs, verbose, cache_dir, permanent_rootdir, architecture=report.get('Architecture'), origins=origins, install_dbg=False, install_deps=True) except SystemError as e: apport.fatal(str(e)) pkg_versions = report_package_versions(report) pkgs = needed_runtime_packages(report, sandbox_dir, pkgmap_cache_dir, pkg_versions, verbose) # package hooks might reassign Package:, check that we have the originally # crashing binary for path in ('InterpreterPath', 'ExecutablePath'): if path in report: pkg = apport.packaging.get_file_package(report[path], True, pkgmap_cache_dir, release=report['DistroRelease'], arch=report.get('Architecture')) # Because of UsrMerge the two systemctl's may share the same # location, however since systemd and systemctl conflict we can # assume that if the SourcePackage was set to systemd it is # correct. For an example see LP: #1872211. if pkg == 'systemctl': if report['SourcePackage'] == 'systemd': report['ExecutablePath'] = '/bin/systemctl' pkg = 'systemd' if pkg: apport.log('Installing extra package %s to get %s' % (pkg, path), log_timestamps) pkgs.append((pkg, pkg_versions.get(pkg))) else: apport.fatal('Cannot find package which ships %s %s', path, report[path]) # unpack packages for executable using cache and sandbox if pkgs: try: outdated_msg += apport.packaging.install_packages( sandbox_dir, config_dir, report['DistroRelease'], pkgs, verbose, cache_dir, permanent_rootdir, architecture=report.get('Architecture'), origins=origins) except SystemError as e: apport.fatal(str(e)) # sanity check: for a packaged binary we require having the executable in # the sandbox; TODO: for an unpackage binary we don't currently copy its # potential local library dependencies (like those in build trees) into the # sandbox, and we call gdb/valgrind on the binary outside the sandbox. if 'Package' in report: for path in ('InterpreterPath', 'ExecutablePath'): if path in report and not os.path.exists(sandbox_dir + report[path]): apport.fatal('%s %s does not exist (report specified package %s)', path, sandbox_dir + report[path], report['Package']) if outdated_msg: report['RetraceOutdatedPackages'] = outdated_msg apport.memdbg('built sandbox') return sandbox_dir, cache_dir, outdated_msg ��������apport-2.20.11/apport/ui.py�������������������������������������������������������������������������0000664�0000000�0000000�00000223304�14416106601�012351� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Abstract Apport user interface. This encapsulates the workflow and common code for any user interface implementation (like GTK, Qt, or CLI). ''' # Copyright (C) 2007 - 2011 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import glob, sys, os.path, optparse, traceback, locale, gettext, re, io import errno, zlib, gzip import subprocess, threading, webbrowser import signal import time import ast import apport, apport.fileutils, apport.REThread import apport.crashdb from apport import unicode_gettext as _ from apport.user_group import get_process_user_and_group if sys.version_info.major == 2: from ConfigParser import ConfigParser ConfigParser # pyflakes PY3 = False else: from configparser import ConfigParser PY3 = True __version__ = '2.20.11' def excstr(exception): '''Return exception message as unicode.''' if sys.version_info.major == 2: return str(exception).decode(locale.getpreferredencoding(), 'replace') return str(exception) symptom_script_dir = os.environ.get('APPORT_SYMPTOMS_DIR', '/usr/share/apport/symptoms') PF_KTHREAD = 0x200000 def get_pid(report): try: pid = re.search('Pid:\t(.*)\n', report.get('ProcStatus', '')).group(1) return int(pid) except (IndexError, AttributeError): return None def _get_env_int(key, default=None): """Get an environment variable as integer. Return None if it doesn't exist or failed to convert to integer. The optional second argument can specify an alternate default. """ try: return int(os.environ[key]) except (KeyError, ValueError): return default def run_as_real_user(args, **kwargs): """Call subprocess.run as real user if called via sudo/pkexec. If we are called through pkexec/sudo, determine the real user ID and run the command with it to get the user's web browser settings. """ uid = _get_env_int("SUDO_UID", _get_env_int("PKEXEC_UID")) if uid is None or not get_process_user_and_group().is_root(): subprocess.run(args, check=False, **kwargs) return sudo_prefix = ['sudo', '-H', '-u', '#' + str(uid)] subprocess.run(sudo_prefix + args, check=False, **kwargs) def still_running(pid): try: os.kill(int(pid), 0) except OSError as e: if e.errno == errno.ESRCH: return False return True def thread_collect_info(report, reportfile, package, ui, symptom_script=None, ignore_uninstalled=False): '''Collect information about report. Encapsulate calls to add_*_info() and update given report, so that this function is suitable for threading. ui must be a HookUI instance, it gets passed to add_hooks_info(). If reportfile is not None, the file is written back with the new data. If symptom_script is given, it will be run first (for run_symptom()). ''' try: report.add_gdb_info() except OSError: # it's okay if gdb is not installed on the client side; we'll get stack # traces on retracing. pass report.add_os_info() if symptom_script: symb = {} try: with open(symptom_script) as f: exec(compile(f.read(), symptom_script, 'exec'), symb) package = symb['run'](report, ui) if not package: apport.error('symptom script %s did not determine the affected package', symptom_script) return report['Symptom'] = os.path.splitext(os.path.basename(symptom_script))[0] except StopIteration: sys.exit(0) except Exception: apport.error('symptom script %s crashed:', symptom_script) traceback.print_exc() sys.exit(0) if not package: if 'ExecutablePath' in report: package = apport.fileutils.find_file_package(report['ExecutablePath']) else: raise KeyError('called without a package, and report does not have ExecutablePath') # check if the package name relates to an installed snap snap = apport.fileutils.find_snap(package) if snap: report.add_snap_info(snap) try: report.add_package_info(package) except ValueError: # this happens if we are collecting information on an uninstalled # package # we found no package, but a snap, so lets continue if not ignore_uninstalled and 'Snap' not in report: raise except SystemError as e: report['UnreportableReason'] = excstr(e) if 'UnreportableReason' not in report: if report.add_hooks_info(ui): sys.exit(0) # check package origin; we do that after adding hooks, so that hooks have # the chance to set a third-party CrashDB. try: if 'CrashDB' not in report and 'APPORT_DISABLE_DISTRO_CHECK' not in os.environ: if 'Package' not in report and 'Snap' not in report: report['UnreportableReason'] = _('This package does not seem to be installed correctly') elif not apport.packaging.is_distro_package(report['Package'].split()[0]) and \ not apport.packaging.is_native_origin_package(report['Package'].split()[0]): # TRANS: %s is the name of the operating system report['UnreportableReason'] = _( 'This is not an official %s package. Please remove any third party package and try again.') % report['DistroRelease'].split()[0] except ValueError: # this happens if we are collecting information on an uninstalled # package # we found no package, but a snap, so lets continue if not ignore_uninstalled and 'Snap' not in report: raise # add title if 'Title' not in report: title = report.standard_title() if title: report['Title'] = title # check obsolete packages if report.get('ProblemType') == 'Crash' and 'APPORT_IGNORE_OBSOLETE_PACKAGES' not in os.environ: old_pkgs = report.obsolete_packages() if old_pkgs: report['UnreportableReason'] = _('You have some obsolete package \ versions installed. Please upgrade the following packages and check if the \ problem still occurs:\n\n%s') % ', '.join(old_pkgs) # disabled: if we have a SIGABRT without an assertion message, declare as unreportable # if report.get('Signal') == '6' and 'AssertionMessage' not in report: # report['UnreportableReason'] = _('The program crashed on an assertion failure, but the message could not be retrieved. Apport does not support reporting these crashes.') if reportfile: try: with open(reportfile, 'ab') as f: os.chmod(reportfile, 0) report.write(f, only_new=True) except IOError as e: # this should happen very rarely; presumably a new crash report is # being generated by a background apport instance (which will set # the file to permissions zero while writing), while the first # report is being processed apport.error('Cannot update %s: %s' % (reportfile, e)) apport.fileutils.mark_report_seen(reportfile) os.chmod(reportfile, 0o640) class UserInterface: '''Apport user interface API. This provides an abstract base class for encapsulating the workflow and common code for any user interface implementation (like GTK, Qt, or CLI). A concrete subclass must implement all the abstract ui_* methods. ''' def __init__(self): '''Initialize program state and parse command line options.''' self.gettext_domain = 'apport' self.report = None self.report_file = None self.cur_package = None self.offer_restart = False self.specified_a_pkg = False try: self.crashdb = apport.crashdb.get_crashdb(None) except ImportError as e: # this can happen while upgrading python packages apport.fatal('Could not import module, is a package upgrade in progress? Error: %s', str(e)) except KeyError: apport.fatal('/etc/apport/crashdb.conf is damaged: No default database') gettext.textdomain(self.gettext_domain) self.parse_argv() # # main entry points # def run_crashes(self): '''Present all currently pending crash reports. Ask the user what to do about them, and offer to file bugs for them. Crashes that occurred in a different desktop (logind) session than the one that is currently running are not processed. This skips crashes that happened during logout, which are uninteresting and confusing to see at the next login. Return True if at least one crash report was processed, False otherwise. ''' result = False # for iterating over /var/crash (as opposed to running on or clicking # on a particular .crash file) we offer restarting self.offer_restart = True if os.geteuid() == 0: reports = apport.fileutils.get_new_system_reports() logind_session = None else: reports = apport.fileutils.get_new_reports() if not PY3: logind_session = apport.Report.get_logind_session(os.getpid()) else: proc_pid_fd = os.open('/proc/%s' % os.getpid(), os.O_RDONLY | os.O_PATH | os.O_DIRECTORY) logind_session = apport.Report.get_logind_session(proc_pid_fd=proc_pid_fd) for f in reports: if not self.load_report(f): continue # Skip crashes that happened during logout, which are uninteresting # and confusing to see at the next login. A crash happened and gets # reported in the same session if the logind session paths agree # and the session started before the report's "Date". if logind_session and '_LogindSession' in self.report and \ 'Date' in self.report: # report.get_timestamp() can return None if not self.report.get_timestamp(): continue if logind_session[0] != self.report['_LogindSession'] or \ logind_session[1] > self.report.get_timestamp(): continue if self.report['ProblemType'] == 'Hang': self.finish_hang(f) else: self.run_crash(f) result = True return result def run_crash(self, report_file, confirm=True): '''Present and report a particular crash. If confirm is True, ask the user what to do about it, and offer to file a bug for it. If confirm is False, the user will not be asked, and the crash is reported right away. ''' self.report_file = report_file try: try: apport.fileutils.mark_report_seen(report_file) except OSError: # not there any more? no problem, then it won't be regarded as # "seen" any more anyway pass if not self.report and not self.load_report(report_file): return if 'Ignore' in self.report: return # check for absent CoreDumps (removed if they exceed size limit) if self.report.get('ProblemType') == 'Crash' and 'Signal' in self.report and 'CoreDump' not in self.report and 'Stacktrace' not in self.report: subject = os.path.basename(self.report.get('ExecutablePath', _('unknown program'))) heading = _('Sorry, the program "%s" closed unexpectedly') % subject self.ui_error_message( _('Problem in %s') % subject, '%s\n\n%s' % (heading, _('Your computer does not have enough free ' 'memory to automatically analyze the problem ' 'and send a report to the developers.'))) return allowed_to_report = apport.fileutils.allowed_to_report() response = self.ui_present_report_details(allowed_to_report) if response['report'] or response['examine']: if 'Dependencies' not in self.report: self.collect_info() if self.report is None: # collect() does that on invalid reports return if response['examine']: self.examine() return if response['restart']: self.restart() if response['blacklist']: self.report.mark_ignore() try: if response['remember']: self.remember_send_report(response['report']) # use try/expect for python2 support. Old reports (generated pre-apport 2.20.10-0ubuntu4) # may not have the remember key and can be loaded afterwards (or after dist-upgrade) except KeyError: pass if not response['report']: return # We don't want to send crashes to the crash database for binaries # that changed since the crash happened. See LP: #1039220 for # details. if '_MarkForUpload' in self.report and \ self.report['_MarkForUpload'] != 'False': apport.fileutils.mark_report_upload(report_file) # We check for duplicates and unreportable crashes here, rather # than before we show the dialog, as we want to submit these to the # crash database, but not Launchpad. if self.crashdb.accepts(self.report): # FIXME: This behaviour is not really correct, but necessary as # long as we only support a single crashdb and have whoopsie # hardcoded. Once we have multiple crash dbs, we need to check # accepts() earlier, and not even present the data if none of # the DBs wants the report. See LP#957177 for details. if self.handle_duplicate(): return if self.check_unreportable(): return self.file_report() except IOError as e: # fail gracefully if file is not readable for us if e.errno in (errno.EPERM, errno.EACCES): self.ui_error_message(_('Invalid problem report'), _('You are not allowed to access this problem report.')) sys.exit(1) elif e.errno == errno.ENOSPC: self.ui_error_message(_('Error'), _('There is not enough disk space available to process this report.')) sys.exit(1) else: self.ui_error_message(_('Invalid problem report'), e.strerror) sys.exit(1) except OSError as e: # fail gracefully on ENOMEM if e.errno == errno.ENOMEM: apport.fatal('Out of memory, aborting') else: raise def finish_hang(self, f): '''Finish processing a hanging application after the core pipe handler has handed the report back. This will signal to whoopsie that the report needs to be uploaded. ''' apport.fileutils.mark_report_upload(f) apport.fileutils.mark_report_seen(f) def run_hang(self, pid): '''Report an application hanging. This will first present a dialog containing the information it can collect from the running application (everything but the trace) with the option of terminating or restarting the application, optionally reporting that this error occurred. A SIGABRT will then be sent to the process and a series of noninteractive processes will collect the remaining information and mark the report for uploading. ''' self.report = apport.Report('Hang') if not self.options.pid: self.ui_error_message(_('No PID specified'), _('You need to specify a PID. See --help for more information.')) return False try: self.report.add_proc_info(pid) except ValueError as e: if str(e) == 'invalid process': self.ui_error_message(_('Invalid PID'), _('The specified process ID does not exist.')) sys.exit(1) elif str(e) == 'not accessible': self.ui_error_message(_('Not your PID'), _('The specified process ID does not belong to you.')) sys.exit(1) self.report.add_package_info() path = self.report.get('ExecutablePath', '') self.cur_package = apport.fileutils.find_file_package(path) self.report.add_os_info() allowed_to_report = apport.fileutils.allowed_to_report() response = self.ui_present_report_details(allowed_to_report, modal_for=pid) if response['report']: apport.fileutils.mark_hanging_process(self.report, pid) os.kill(int(pid), signal.SIGABRT) else: os.kill(int(pid), signal.SIGKILL) if response['restart']: self.wait_for_pid(pid) self.restart() def wait_for_pid(self, pid): '''waitpid() does not work for non-child processes. Query the process state in a loop, waiting for "no such process." ''' while True: try: os.kill(int(pid), 0) except OSError as e: if e.errno == errno.ESRCH: break else: raise time.sleep(1) def kill_segv(self, pid): os.kill(int(pid), signal.SIGSEGV) def run_report_bug(self, symptom_script=None): '''Report a bug. If a pid is given on the command line, the report will contain runtime debug information. Either a package or a pid must be specified; if none is given, show a list of symptoms. If a symptom script is given, this will be run first (used by run_symptom()). ''' if not self.options.package and not self.options.pid and \ not symptom_script: if self.run_symptoms(): return True else: self.ui_error_message(_('No package specified'), _('You need to specify a package or a PID. See --help for more information.')) return False self.report = apport.Report('Bug') # if PID is given, add info if self.options.pid: try: proc_pid_fd = None if PY3: proc_pid_fd = os.open('/proc/%s' % self.options.pid, os.O_RDONLY | os.O_PATH | os.O_DIRECTORY) stat_file = os.open('stat', os.O_RDONLY, dir_fd=proc_pid_fd) else: stat_file = '/proc/%s/stat' % self.options.pid with io.open(stat_file) as f: stat = f.read().split() flags = int(stat[8]) if flags & PF_KTHREAD: # this PID is a kernel thread self.options.package = 'linux' else: self.report.add_proc_info(pid=self.options.pid, proc_pid_fd=proc_pid_fd) except (ValueError, IOError, OSError) as e: if hasattr(e, 'errno'): # silently ignore nonexisting PIDs; the user must not close the # application prematurely if e.errno == errno.ENOENT: return False elif e.errno == errno.EACCES: self.ui_error_message(_('Permission denied'), _('The specified process does not belong to you. Please run this program as the process owner or as root.')) return False self.ui_error_message(_('Invalid PID'), _('The specified process ID does not belong to a program.')) return False else: self.report.add_proc_environ() if self.options.package: self.options.package = self.options.package.strip() # "Do what I mean" for filing against "linux" if self.options.package == 'linux': self.cur_package = apport.packaging.get_kernel_package() else: self.cur_package = self.options.package try: self.collect_info(symptom_script) except ValueError as e: if 'package' in str(e) and 'does not exist' in str(e): if not self.cur_package: self.ui_error_message(_('Invalid problem report'), _('Symptom script %s did not determine an affected package') % symptom_script) else: self.ui_error_message(_('Invalid problem report'), _('Package %s does not exist') % self.cur_package) return False else: raise if self.check_unreportable(): return self.add_extra_tags() if self.handle_duplicate(): return True # not useful for bug reports, and has potentially sensitive information try: del self.report['ProcCmdline'] except KeyError: pass if self.options.save: try: savefile = os.path.expanduser(self.options.save) if savefile.endswith(".gz"): with gzip.open(savefile, 'wb') as f: self.report.write(f) else: with open(os.path.expanduser(self.options.save), 'wb') as f: self.report.write(f) except (IOError, OSError) as e: self.ui_error_message(_('Cannot create report'), excstr(e)) else: # show what's being sent allowed_to_report = True response = self.ui_present_report_details(allowed_to_report) if response['report']: self.file_report() return True def run_update_report(self): '''Update an existing bug with locally collected information.''' # avoid irrelevant noise if not self.crashdb.can_update(self.options.update_report): self.ui_error_message(_('Updating problem report'), _('You are not the reporter or subscriber of this ' 'problem report, or the report is a duplicate or already ' 'closed.\n\nPlease create a new report using "apport-bug".')) return False is_reporter = self.crashdb.is_reporter(self.options.update_report) if not is_reporter: r = self.ui_question_yesno( _('You are not the reporter of this problem report. It ' 'is much easier to mark a bug as a duplicate of another ' 'than to move your comments and attachments to a new bug.\n\n' 'Subsequently, we recommend that you file a new bug report ' 'using "apport-bug" and make a comment in this bug about ' 'the one you file.\n\n' 'Do you really want to proceed?')) if not r: return False # list of affected source packages self.report = apport.Report('Bug') if self.options.package: pkgs = [self.options.package.strip()] else: pkgs = self.crashdb.get_affected_packages(self.options.update_report) info_collected = False for p in pkgs: # print('Collecting apport information for source package %s...' % p) self.cur_package = p self.report['SourcePackage'] = p self.report['Package'] = p # no way to find this out # we either must have the package installed or a source package hook # available to collect sensible information try: apport.packaging.get_version(p) except ValueError: if not os.path.exists(os.path.join(apport.report._hook_dir, 'source_%s.py' % p)): print('Package %s not installed and no hook available, ignoring' % p) continue self.collect_info(ignore_uninstalled=True) info_collected = True if not info_collected: self.ui_info_message(_('Updating problem report'), _('No additional information collected.')) return False self.report.add_user_info() self.report.add_proc_environ() self.add_extra_tags() # delete the uninteresting keys del self.report['Date'] try: del self.report['SourcePackage'] except KeyError: pass if len(self.report) == 0: self.ui_info_message(_('Updating problem report'), _('No additional information collected.')) return False # show what's being sent allowed_to_report = True response = self.ui_present_report_details(allowed_to_report) if response['report']: self.crashdb.update(self.options.update_report, self.report, 'apport information', change_description=is_reporter, attachment_comment='apport information') return True return False def run_symptoms(self): '''Report a bug from a list of available symptoms. Return False if no symptoms are available. ''' scripts = glob.glob(os.path.join(symptom_script_dir, '*.py')) symptom_names = [] symptom_descriptions = [] for script in scripts: # scripts with an underscore can be used for private libraries if os.path.basename(script).startswith('_'): continue symb = {} try: with open(script) as f: exec(compile(f.read(), script, 'exec'), symb) except Exception: apport.error('symptom script %s is invalid', script) traceback.print_exc() continue if 'run' not in symb: apport.error('symptom script %s does not define run() function', script) continue symptom_names.append(os.path.splitext(os.path.basename(script))[0]) symptom_descriptions.append(symb.get('description', symptom_names[-1])) if not symptom_names: return False symptom_descriptions, symptom_names = \ zip(*sorted(zip(symptom_descriptions, symptom_names))) symptom_descriptions = list(symptom_descriptions) symptom_names = list(symptom_names) symptom_names.append(None) symptom_descriptions.append('Other problem') ch = self.ui_question_choice(_('What kind of problem do you want to report?'), symptom_descriptions, False) if ch is not None: symptom = symptom_names[ch[0]] if symptom: self.run_report_bug(os.path.join(symptom_script_dir, symptom + '.py')) else: return False return True def run_symptom(self): '''Report a bug with a symptom script.''' script = os.path.join(symptom_script_dir, self.options.symptom + '.py') if not os.path.exists(script): self.ui_error_message(_('Unknown symptom'), _('The symptom "%s" is not known.') % self.options.symptom) return self.run_report_bug(script) def run_argv(self): '''Call appopriate run_* method according to command line arguments. Return True if at least one report has been processed, and False otherwise. ''' if self.options.symptom: self.run_symptom() return True elif self.options.hanging: self.run_hang(self.options.pid) return True elif self.options.filebug: return self.run_report_bug() elif self.options.update_report is not None: return self.run_update_report() elif self.options.version: print(__version__) return True elif self.options.crash_file: try: self.run_crash(self.options.crash_file, False) except OSError as e: self.ui_error_message(_('Invalid problem report'), excstr(e)) return True elif self.options.window: if os.getenv('XDG_SESSION_TYPE') == 'wayland': self.ui_error_message(_('Cannot create report'), _('The window option cannot be used on ' 'Wayland.\n\nPlease find the window\'s ' 'process ID and then run \'ubuntu-bug ' '<process ID>\'.' '\n\nThe process ID can be found ' 'by running the System Monitor application. ' 'In the Processes tab, scroll until you ' 'find the correct application. The process ' 'ID is the number listed in the ID column.')) return True self.ui_info_message('', _('After closing this message ' 'please click on an application window to report a problem about it.')) xprop = subprocess.Popen(['xprop', '_NET_WM_PID'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = xprop.communicate() if xprop.returncode == 0: try: self.options.pid = int(out.split()[-1]) except ValueError: self.ui_error_message(_('Cannot create report'), _('xprop failed to determine process ID of the window')) return True return self.run_report_bug() else: self.ui_error_message(_('Cannot create report'), _('xprop failed to determine process ID of the window') + '\n\n' + err) return True else: return self.run_crashes() # # methods that implement workflow bits # def parse_argv_update(self): '''Parse command line options when being invoked in update mode. Return (options, args). ''' optparser = optparse.OptionParser(_('%prog <report number>')) optparser.add_option('-p', '--package', help=_('Specify package name.')) optparser.add_option('--tag', action='append', default=[], help=_('Add an extra tag to the report. Can be specified multiple times.')) (self.options, self.args) = optparser.parse_args() if len(self.args) != 1 or not self.args[0].isdigit(): optparser.error('You need to specify a report number to update') sys.exit(1) self.options.update_report = int(self.args[0]) self.options.symptom = None self.options.filebug = False self.options.crash_file = None self.options.version = None self.options.hanging = False self.args = [] def parse_argv(self): '''Parse command line options. If a single argument is given without any options, this tries to "do what I mean". ''' # invoked in update mode? if len(sys.argv) > 0: if 'APPORT_INVOKED_AS' in os.environ: sys.argv[0] = os.path.join(os.path.dirname(sys.argv[0]), os.path.basename(os.environ['APPORT_INVOKED_AS'])) cmd = sys.argv[0] if cmd.endswith('-update-bug') or cmd.endswith('-collect'): self.parse_argv_update() return optparser = optparse.OptionParser(_('%prog [options] [symptom|pid|package|program path|.apport/.crash file]')) optparser.add_option('-f', '--file-bug', action='store_true', dest='filebug', default=False, help=_('Start in bug filing mode. Requires --package and an optional --pid, or just a --pid. If neither is given, display a list of known symptoms. (Implied if a single argument is given.)')) optparser.add_option('-w', '--window', action='store_true', default=False, help=_('Click a window as a target for filing a problem report.')) optparser.add_option('-u', '--update-bug', type='int', dest='update_report', help=_('Start in bug updating mode. Can take an optional --package.')) optparser.add_option('-s', '--symptom', metavar='SYMPTOM', help=_('File a bug report about a symptom. (Implied if symptom name is given as only argument.)')) optparser.add_option('-p', '--package', help=_('Specify package name in --file-bug mode. This is optional if a --pid is specified. (Implied if package name is given as only argument.)')) optparser.add_option('-P', '--pid', type='int', help=_('Specify a running program in --file-bug mode. If this is specified, the bug report will contain more information. (Implied if pid is given as only argument.)')) optparser.add_option('--hanging', action='store_true', default=False, help=_('The provided pid is a hanging application.')) optparser.add_option('-c', '--crash-file', metavar='PATH', help=_('Report the crash from given .apport or .crash file instead of the pending ones in %s. (Implied if file is given as only argument.)') % apport.fileutils.report_dir) optparser.add_option('--save', metavar='PATH', help=_('In bug filing mode, save the collected information into a file instead of reporting it. This file can then be reported later on from a different machine.')) optparser.add_option('--tag', action='append', default=[], help=_('Add an extra tag to the report. Can be specified multiple times.')) optparser.add_option('-v', '--version', action='store_true', help=_('Print the Apport version number.')) if len(sys.argv) > 0 and cmd.endswith('-bug'): for o in ('-f', '-u', '-s', '-p', '-P', '-c'): optparser.get_option(o).help = optparse.SUPPRESS_HELP (self.options, self.args) = optparser.parse_args() # mutually exclusive arguments if self.options.update_report: if self.options.filebug or self.options.window or self.options.symptom \ or self.options.pid or self.options.crash_file or self.options.save: optparser.error('-u/--update-bug option cannot be used together with options for a new report') # "do what I mean" for zero or one arguments if len(sys.argv) == 0: return # no argument: default to "show pending crashes" except when called in # bug mode # NOTE: uses sys.argv, since self.args if empty for all the options, # e.g. "-v" or "-u $BUG" if len(sys.argv) == 1 and cmd.endswith('-bug'): self.options.filebug = True return # one argument: guess "file bug" mode by argument type if len(self.args) != 1: return # symptom? if os.path.exists(os.path.join(symptom_script_dir, self.args[0] + '.py')): self.options.filebug = True self.options.symptom = self.args[0] self.args = [] # .crash/.apport file? elif self.args[0].endswith('.crash') or self.args[0].endswith('.apport'): self.options.crash_file = self.args[0] self.args = [] # PID? elif self.args[0].isdigit(): self.options.filebug = True self.options.pid = self.args[0] self.args = [] # executable? elif '/' in self.args[0]: if self.args[0].startswith('/snap/bin'): # see if the snap has the same name as the executable snap = apport.fileutils.find_snap(self.args[0].split('/')[-1]) if not snap: optparser.error('%s is provided by a snap. No contact address has been provided; visit the forum at https://forum.snapcraft.io/ for help.' % self.args[0]) elif snap.get("contact", ""): optparser.error('%s is provided by a snap published by %s. Contact them via %s for help.' % (self.args[0], snap["developer"], snap["contact"])) else: optparser.error('%s is provided by a snap published by %s. No contact address has been provided; visit the forum at https://forum.snapcraft.io/ for help.' % (self.args[0], snap["developer"])) sys.exit(1) else: pkg = apport.packaging.get_file_package(self.args[0]) if not pkg: optparser.error('%s does not belong to a package.' % self.args[0]) sys.exit(1) self.args = [] self.options.filebug = True self.options.package = pkg # otherwise: package name else: self.options.filebug = True self.specified_a_pkg = True self.options.package = self.args[0] self.args = [] def format_filesize(self, size): '''Format the given integer as humanly readable and i18n'ed file size.''' if size < 1000000: return locale.format('%.1f', size / 1000.) + ' KB' if size < 1000000000: return locale.format('%.1f', size / 1000000.) + ' MB' return locale.format('%.1f', size / float(1000000000)) + ' GB' def get_complete_size(self): '''Return the size of the complete report.''' # report wasn't loaded, so count manually size = 0 for k in self.report: if self.report[k]: try: # if we have a compressed value, take its size, but take # base64 overhead into account size += len(self.report[k].gzipvalue) * 8 / 6 except AttributeError: size += len(self.report[k]) return size def get_reduced_size(self): '''Return the size of the reduced report.''' size = 0 for k in self.report: if k != 'CoreDump': if self.report[k]: try: # if we have a compressed value, take its size, but take # base64 overhead into account size += len(self.report[k].gzipvalue) * 8 / 6 except AttributeError: size += len(self.report[k]) return size def can_examine_locally(self): '''Check whether to offer the "Examine locally" button. This will be true if the report has a core dump, apport-retrace is installed and a terminal is available (see ui_run_terminal()). ''' if not self.report or 'CoreDump' not in self.report: return False try: if subprocess.call(['which', 'apport-retrace'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) != 0: return False except OSError: return False try: return self.ui_run_terminal(None) except NotImplementedError: return False def restart(self): '''Reopen the crashed application.''' assert 'ProcCmdline' in self.report if os.fork() == 0: os.setsid() os.execlp('sh', 'sh', '-c', self.report.get('RespawnCommand', self.report['ProcCmdline'])) sys.exit(1) def examine(self): '''Locally examine crash report.''' response = self.ui_question_choice( _('This will launch apport-retrace in a terminal window to examine the crash.'), [_('Run gdb session'), _('Run gdb session without downloading debug symbols'), # TRANSLATORS: %s contains the crash report file name _('Update %s with fully symbolic stack trace') % self.report_file, ], False) if response is None: return retrace_with_download = 'apport-retrace -S system -C %s -v ' % os.path.expanduser( '~/.cache/apport/retrace') retrace_no_download = 'apport-retrace ' filearg = "'" + self.report_file.replace("'", "'\\''") + "'" cmds = { 0: retrace_with_download + '--gdb ' + filearg, 1: retrace_no_download + '--gdb ' + filearg, 2: retrace_with_download + '--output ' + filearg + ' ' + filearg, } self.ui_run_terminal(cmds[response[0]]) def remember_send_report(self, send_report): '''Put whoopsie in auto or never mode''' if send_report: send_report = "true" else: send_report = "false" try: subprocess.check_output(['/usr/bin/gdbus', 'call', '-y', '-d', 'com.ubuntu.WhoopsiePreferences', '-o', '/com/ubuntu/WhoopsiePreferences', '-m', 'com.ubuntu.WhoopsiePreferences.SetReportCrashes', send_report]) subprocess.check_output(['/usr/bin/gdbus', 'call', '-y', '-d', 'com.ubuntu.WhoopsiePreferences', '-o', '/com/ubuntu/WhoopsiePreferences', '-m', 'com.ubuntu.WhoopsiePreferences.SetAutomaticallyReportCrashes', 'true']) except (OSError, subprocess.CalledProcessError) as e: self.ui_error_message(_("Can't remember send report status settings"), '%s\n\n%s' % ( _("Saving crash reporting state failed. Can't set auto or never reporting mode."), excstr(e))) def check_report_crashdb(self): '''Process reports' CrashDB field, if present''' if 'CrashDB' not in self.report: return True # specification? if self.report['CrashDB'].lstrip().startswith('{'): try: spec = ast.literal_eval(self.report['CrashDB']) assert isinstance(spec, dict) assert 'impl' in spec except Exception as e: self.report['UnreportableReason'] = 'A package hook defines an invalid crash database definition:\n%s\n%s' % (self.report['CrashDB'], e) return False try: self.crashdb = apport.crashdb.load_crashdb(None, spec) except (ImportError, KeyError): self.report['UnreportableReason'] = 'A package hook wants to send this report to the crash database "%s" which does not exist.' % self.report['CrashDB'] else: # DB name try: self.crashdb = apport.crashdb.get_crashdb(None, self.report['CrashDB']) except (ImportError, KeyError): self.report['UnreportableReason'] = 'A package hook wants to send this report to the crash database "%s" which does not exist.' % self.report['CrashDB'] return False return True def collect_info(self, symptom_script=None, ignore_uninstalled=False, on_finished=None): '''Collect additional information. Call all the add_*_info() methods and display a progress dialog during this. In particular, this adds OS, package and gdb information and checks bug patterns. If a symptom script is given, this will be run first (used by run_symptom()). ''' self.report['_MarkForUpload'] = 'True' # check if we already ran (we might load a processed report), skip if so if (self.report.get('ProblemType') == 'Crash' and 'Stacktrace' in self.report) or (self.report.get('ProblemType') != 'Crash' and 'Dependencies' in self.report): if on_finished: on_finished() return # ensure that the crashed program is still installed: if self.report.get('ProblemType') == 'Crash': exe_path = self.report.get('ExecutablePath', '') if not os.path.exists(exe_path): msg = _('This problem report applies to a program which is not installed any more.') if exe_path: msg = '%s (%s)' % (msg, self.report['ExecutablePath']) self.report['UnreportableReason'] = msg if on_finished: on_finished() return if 'InterpreterPath' in self.report: if not os.path.exists(self.report['InterpreterPath']): msg = _('This problem report applies to a program which is not installed any more.') self.report['UnreportableReason'] = '%s (%s)' % (msg, self.report['InterpreterPath']) if on_finished: on_finished() return # check if binary changed since the crash happened if 'ExecutablePath' in self.report and 'ExecutableTimestamp' in self.report: orig_time = int(self.report['ExecutableTimestamp']) del self.report['ExecutableTimestamp'] cur_time = int(os.stat(self.report['ExecutablePath']).st_mtime) if orig_time != cur_time: self.report['_MarkForUpload'] = 'False' self.report['UnreportableReason'] = ( _('The problem happened with the program %s which changed ' 'since the crash occurred.') % self.report['ExecutablePath']) return if not self.cur_package and 'ExecutablePath' not in self.report \ and not symptom_script: # this happens if we file a bug without specifying a PID or a # package self.report.add_os_info() else: # since this might take a while, create separate threads and # display a progress dialog. self.ui_start_info_collection_progress() # only use a UI for asking questions if the crash db will accept # the report if self.crashdb.accepts(self.report): hookui = HookUI(self) else: hookui = None if 'Stacktrace' not in self.report: # save original environment, in case hooks change it orig_env = os.environ.copy() icthread = apport.REThread.REThread(target=thread_collect_info, name='thread_collect_info', args=(self.report, self.report_file, self.cur_package, hookui, symptom_script, ignore_uninstalled)) icthread.start() while icthread.is_alive(): self.ui_pulse_info_collection_progress() if hookui: try: hookui.process_event() except KeyboardInterrupt: sys.exit(1) icthread.join() # restore original environment os.environ.clear() os.environ.update(orig_env) try: icthread.exc_raise() except (IOError, EOFError, zlib.error) as e: # can happen with broken core dumps self.report['UnreportableReason'] = '%s\n\n%s' % ( _('This problem report is damaged and cannot be processed.'), repr(e)) self.report['_MarkForUpload'] = 'False' except ValueError: # package does not exist if 'UnreportableReason' not in self.report: self.report['UnreportableReason'] = _('This report is about a package that is not installed.') self.report['_MarkForUpload'] = 'False' except Exception as e: apport.error(repr(e)) self.report['UnreportableReason'] = _('An error occurred while attempting to ' 'process this problem report:') + '\n\n' + str(e) self.report['_MarkForUpload'] = 'False' # ask for target, if snap and deb package are installed if 'Snap' in self.report and 'Package' in self.report: if '(not installed)' in self.report['Package']: # choose snap automatically, if deb package is not installed res = [0] else: res = self.ui_question_choice(_('You have two versions of this application installed, which one do you want to report a bug against?'), [ _('%s snap') % self.report['Snap'], _('%s deb package') % self.report['Package'] ], False) # bug report is about the snap, clean deb package info if res == [0]: del self.report['Package'] if 'PackageArchitecture' in self.report: del self.report['PackageArchitecture'] if 'SourcePackage' in self.report: del self.report['SourcePackage'] # bug report is about the deb package, clean snap info elif res == [1]: del self.report['Snap'] if 'SnapSource' in self.report: del self.report['SnapSource'] if 'SnapTags' in self.report: del self.report['SnapTags'] else: self.ui_stop_info_collection_progress() sys.exit(0) return # append snap tags, if this report is about the snap if 'Snap' in self.report and 'SnapTags' in self.report: current_tags = self.report.get('Tags', '') if current_tags: current_tags += ' ' self.report['Tags'] = current_tags + self.report['SnapTags'] del self.report['SnapTags'] # show a hint if we cannot auto report a snap bug via 'SnapSource' if 'Snap' in self.report and 'SnapSource' not in self.report and 'UnreportableReason' not in self.report and self.specified_a_pkg: snap = apport.fileutils.find_snap(self.cur_package) if snap.get("contact", ""): self.report['UnreportableReason'] = _('%s is provided by a snap published by %s. Contact them via %s for help.') % (snap["name"], snap["developer"], snap["contact"]) else: self.report['UnreportableReason'] = _('%s is provided by a snap published by %s. No contact address has been provided; visit the forum at https://forum.snapcraft.io/ for help.') % (snap["name"], snap["developer"]) self.report['_MarkForUpload'] = 'False' if 'UnreportableReason' in self.report or not self.check_report_crashdb(): self.ui_stop_info_collection_progress() if on_finished: on_finished() return # check bug patterns if self.report.get('ProblemType') == 'KernelCrash' or self.report.get('ProblemType') == 'KernelOops' or 'Package' in self.report: bpthread = apport.REThread.REThread(target=self.report.search_bug_patterns, args=(self.crashdb.get_bugpattern_baseurl(),)) bpthread.start() while bpthread.is_alive(): self.ui_pulse_info_collection_progress() try: bpthread.join(0.1) except KeyboardInterrupt: sys.exit(1) try: bpthread.exc_raise() except (IOError, EOFError, zlib.error) as e: # can happen with broken gz values self.report['UnreportableReason'] = '%s\n\n%s' % ( _('This problem report is damaged and cannot be processed.'), repr(e)) if bpthread.return_value(): self.report['_KnownReport'] = bpthread.return_value() # check crash database if problem is known if self.report.get('ProblemType') != 'Bug': known_thread = apport.REThread.REThread(target=self.crashdb.known, args=(self.report,)) known_thread.start() while known_thread.is_alive(): self.ui_pulse_info_collection_progress() try: known_thread.join(0.1) except KeyboardInterrupt: sys.exit(1) known_thread.exc_raise() val = known_thread.return_value() if val is not None: if val is True: self.report['_KnownReport'] = '1' else: self.report['_KnownReport'] = val # anonymize; needs to happen after duplicate checking, otherwise we # might damage the stack trace anonymize_thread = apport.REThread.REThread(target=self.report.anonymize) anonymize_thread.start() while anonymize_thread.is_alive(): self.ui_pulse_info_collection_progress() try: anonymize_thread.join(0.1) except KeyboardInterrupt: sys.exit(1) anonymize_thread.exc_raise() self.ui_stop_info_collection_progress() # check that we were able to determine package names if 'UnreportableReason' not in self.report: if ((('SourcePackage' not in self.report and 'Dependencies' not in self.report) or (not self.report.get('ProblemType', '').startswith('Kernel') and 'Package' not in self.report)) and ('SnapSource' not in self.report and 'Snap' not in self.report)): self.ui_error_message(_('Invalid problem report'), _('Could not determine the package or source package name.')) # TODO This is not called consistently, is it really needed? self.ui_shutdown() sys.exit(1) if on_finished: on_finished() def open_url(self, url): '''Open the given URL in a new browser window. Display an error dialog if everything fails. ''' (r, w) = os.pipe() if os.fork() > 0: os.close(w) (pid, status) = os.wait() if status: title = _('Unable to start web browser') error = _('Unable to start web browser to open %s.' % url) message = os.fdopen(r).readline() if message: error += '\n' + message self.ui_error_message(title, error) try: os.close(r) except OSError: pass return os.setsid() os.close(r) # If we are called through pkexec/sudo, determine the real user id and # run the browser with it to get the user's web browser settings. try: uid = int(os.getenv('PKEXEC_UID', os.getenv('SUDO_UID'))) sudo_prefix = ['sudo', '-H', '-u', '#' + str(uid)] # restore some environment for xdg-open; it's incredibly hard, or # alternatively, unsafe to funnel it through pkexec/env/sudo, so # grab it from gvfsd try: out = subprocess.check_output( ['pgrep', '-a', '-x', '-u', str(uid), 'gvfsd']).decode('UTF-8') pid = out.splitlines()[0].split()[0] # find the D-BUS address with open('/proc/%s/environ' % pid, 'rb') as f: env = f.read().split(b'\0') for e in env: if e.startswith(b'DBUS_SESSION_BUS_ADDRESS='): sudo_prefix.append('DBUS_SESSION_BUS_ADDRESS=' + e.split(b'=', 1)[1].decode()) break except (subprocess.CalledProcessError, IOError): pass except TypeError: sudo_prefix = [] try: try: subprocess.call(sudo_prefix + ['xdg-open', url]) except OSError: # fall back to webbrowser webbrowser.open(url, new=True, autoraise=True) sys.exit(0) except Exception as e: os.write(w, str(e)) sys.exit(1) os._exit(0) def file_report(self): '''Upload the current report and guide the user to the reporting web page.''' # FIXME: This behaviour is not really correct, but necessary as # long as we only support a single crashdb and have whoopsie # hardcoded. Once we have multiple crash dbs, we need to check # accepts() earlier, and not even present the data if none of # the DBs wants the report. See LP#957177 for details. if not self.crashdb.accepts(self.report): return # drop PackageArchitecture if equal to Architecture if self.report.get('PackageArchitecture') == self.report.get('Architecture'): try: del self.report['PackageArchitecture'] except KeyError: pass # StacktraceAddressSignature is redundant and does not need to clutter # the database try: del self.report['StacktraceAddressSignature'] except KeyError: pass global __upload_progress __upload_progress = None def progress_callback(sent, total): global __upload_progress __upload_progress = float(sent) / total # drop internal/uninteresting keys, that start with "_" for k in list(self.report): if k.startswith('_'): del self.report[k] self.ui_start_upload_progress() upthread = apport.REThread.REThread(target=self.crashdb.upload, args=(self.report, progress_callback)) upthread.start() while upthread.is_alive(): self.ui_set_upload_progress(__upload_progress) try: upthread.join(0.1) upthread.exc_raise() except KeyboardInterrupt: sys.exit(1) except apport.crashdb.NeedsCredentials as e: message = _('Please enter your account information for the ' '%s bug tracking system') data = self.ui_question_userpass(message % excstr(e)) if data is not None: user, password = data self.crashdb.set_credentials(user, password) upthread = apport.REThread.REThread(target=self.crashdb.upload, args=(self.report, progress_callback)) upthread.start() except (TypeError, SyntaxError, ValueError): raise except Exception as e: self.ui_error_message(_('Network problem'), '%s\n\n%s' % ( _('Cannot connect to crash database, please check your Internet connection.'), excstr(e))) return upthread.exc_raise() ticket = upthread.return_value() self.ui_stop_upload_progress() url = self.crashdb.get_comment_url(self.report, ticket) if url: self.open_url(url) def load_report(self, path): '''Load report from given path and do some consistency checks. This might issue an error message and return False if the report cannot be processed, otherwise self.report is initialized and True is returned. ''' try: self.report = apport.Report() with open(path, 'rb') as f: self.report.load(f, binary='compressed') if 'ProblemType' not in self.report: raise ValueError('Report does not contain "ProblemType" field') except MemoryError: self.report = None self.ui_error_message(_('Memory exhaustion'), _('Your system does not have enough memory to process this crash report.')) return False except IOError as e: self.report = None self.ui_error_message(_('Invalid problem report'), e.strerror) return False except (TypeError, ValueError, AssertionError, zlib.error) as e: self.report = None self.ui_error_message(_('Invalid problem report'), '%s\n\n%s' % ( _('This problem report is damaged and cannot be processed.'), repr(e))) return False if 'Package' in self.report: self.cur_package = self.report['Package'].split()[0] else: self.cur_package = apport.fileutils.find_file_package(self.report.get('ExecutablePath', '')) return True def check_unreportable(self): '''Check if the current report is unreportable. If so, display an info message and return True. ''' if not self.crashdb.accepts(self.report): return False if 'UnreportableReason' in self.report: if type(self.report['UnreportableReason']) == bytes: self.report['UnreportableReason'] = self.report['UnreportableReason'].decode('UTF-8') if 'Package' in self.report: title = _('Problem in %s') % self.report['Package'].split()[0] else: title = '' self.ui_info_message(title, _('The problem cannot be reported:\n\n%s') % self.report['UnreportableReason']) return True return False def get_desktop_entry(self): '''Return a .desktop info dictionary for the current report. Return None if report cannot be associated to a .desktop file. ''' if 'DesktopFile' in self.report and os.path.exists(self.report['DesktopFile']): desktop_file = self.report['DesktopFile'] else: try: desktop_file = apport.fileutils.find_package_desktopfile(self.cur_package) except ValueError: return None if not desktop_file: return None if PY3: cp = ConfigParser(interpolation=None, strict=False) kwargs = {'encoding': 'UTF-8'} else: cp = ConfigParser() kwargs = {} try: cp.read(desktop_file, **kwargs) except Exception as e: if 'onfig' in str(e.__class__) and 'arser' in str(e.__class__): sys.stderr.write('Warning! %s is broken: %s\n' % (desktop_file, str(e))) return None else: raise if not cp.has_section('Desktop Entry'): return None result = dict(cp.items('Desktop Entry')) if 'name' not in result: return None return result def handle_duplicate(self): '''Check if current report matches a bug pattern. If so, tell the user about it, open the existing bug in a browser, and return True. ''' if not self.crashdb.accepts(self.report): return False if '_KnownReport' not in self.report: return False # if we have an URL, open it; otherwise this is just a marker that we # know about it if self.report['_KnownReport'].startswith('http'): self.ui_info_message(_('Problem already known'), _('This problem was already reported in the bug report displayed \ in the web browser. Please check if you can add any further information that \ might be helpful for the developers.')) self.open_url(self.report['_KnownReport']) else: self.ui_info_message(_('Problem already known'), _('This problem was already reported to developers. Thank you!')) return True def add_extra_tags(self): '''Add extra tags to report specified with --tags on CLI.''' assert self.report if self.options.tag: tags = self.report.get('Tags', '') if tags: tags += ' ' self.report['Tags'] = tags + ' '.join(self.options.tag) # # abstract UI methods that must be implemented in derived classes # def ui_present_report_details(self, allowed_to_report=True, modal_for=None): '''Show details of the bug report. Return the action and options as a dictionary: - Valid keys are: report the crash ('report'), restart the crashed application ('restart'), or blacklist further crashes ('blacklist'). ''' raise NotImplementedError('this function must be overridden by subclasses') def ui_info_message(self, title, text): '''Show an information message box with given title and text.''' raise NotImplementedError('this function must be overridden by subclasses') def ui_error_message(self, title, text): '''Show an error message box with given title and text.''' raise NotImplementedError('this function must be overridden by subclasses') def ui_start_info_collection_progress(self): '''Open a indefinite progress bar for data collection. This tells the user to wait while debug information is being collected. ''' raise NotImplementedError('this function must be overridden by subclasses') def ui_pulse_info_collection_progress(self): '''Advance the data collection progress bar. This function is called every 100 ms. ''' raise NotImplementedError('this function must be overridden by subclasses') def ui_stop_info_collection_progress(self): '''Close debug data collection progress window.''' raise NotImplementedError('this function must be overridden by subclasses') def ui_start_upload_progress(self): '''Open progress bar for data upload. This tells the user to wait while debug information is being uploaded. ''' raise NotImplementedError('this function must be overridden by subclasses') def ui_set_upload_progress(self, progress): '''Update data upload progress bar. Set the progress bar in the debug data upload progress window to the given ratio (between 0 and 1, or None for indefinite progress). This function is called every 100 ms. ''' raise NotImplementedError('this function must be overridden by subclasses') def ui_stop_upload_progress(self): '''Close debug data upload progress window.''' raise NotImplementedError('this function must be overridden by subclasses') def ui_shutdown(self): '''Called right before terminating the program. This can be used for for cleaning up. ''' pass def ui_run_terminal(self, command): '''Run command in, or check for a terminal window. If command is given, run command in a terminal window; raise an exception if terminal cannot be opened. If command is None, merely check if a terminal application is available and can be launched. ''' raise NotImplementedError('this function must be overridden by subclasses') # # Additional UI dialogs; these are not required by Apport itself, but can # be used by interactive package hooks # def ui_question_yesno(self, text): '''Show a yes/no question. Return True if the user selected "Yes", False if selected "No" or "None" on cancel/dialog closing. ''' raise NotImplementedError('this function must be overridden by subclasses') def ui_question_choice(self, text, options, multiple): '''Show an question with predefined choices. options is a list of strings to present. If multiple is True, they should be check boxes, if multiple is False they should be radio buttons. Return list of selected option indexes, or None if the user cancelled. If multiple == False, the list will always have one element. ''' raise NotImplementedError('this function must be overridden by subclasses') def ui_question_file(self, text): '''Show a file selector dialog. Return path if the user selected a file, or None if cancelled. ''' raise NotImplementedError('this function must be overridden by subclasses') def ui_question_userpass(self, message): '''Request username and password from user. message is the text to be presented to the user when requesting for username and password information. Return a tuple (username, password), or None if cancelled. ''' raise NotImplementedError('this function must be overridden by subclasses') class HookUI: '''Interactive functions which can be used in package hooks. This provides an interface for package hooks which need to ask interactive questions. Directly passing the UserInterface instance to the hooks needs to be avoided, since we need to call the UI methods in a different thread, and also don't want hooks to be able to poke in the UI. ''' def __init__(self, ui): '''Create a HookUI object. ui is the UserInterface instance to wrap. ''' self.ui = ui # variables for communicating with the UI thread self._request_event = threading.Event() self._response_event = threading.Event() self._request_fn = None self._request_args = None self._response = None # # API for hooks # def information(self, text): '''Show an information with OK/Cancel buttons. This can be used for asking the user to perform a particular action, such as plugging in a device which does not work. ''' return self._trigger_ui_request('ui_info_message', '', text) def yesno(self, text): '''Show a yes/no question. Return True if the user selected "Yes", False if selected "No" or "None" on cancel/dialog closing. ''' return self._trigger_ui_request('ui_question_yesno', text) def choice(self, text, options, multiple=False): '''Show an question with predefined choices. options is a list of strings to present. If multiple is True, they should be check boxes, if multiple is False they should be radio buttons. Return list of selected option indexes, or None if the user cancelled. If multiple == False, the list will always have one element. ''' return self._trigger_ui_request('ui_question_choice', text, options, multiple) def file(self, text): '''Show a file selector dialog. Return path if the user selected a file, or None if cancelled. ''' return self._trigger_ui_request('ui_question_file', text) # # internal API for inter-thread communication # def _trigger_ui_request(self, fn, *args): '''Called by HookUi functions in info collection thread.''' # only one at a time assert not self._request_event.is_set() assert not self._response_event.is_set() assert self._request_fn is None self._response = None self._request_fn = fn self._request_args = args self._request_event.set() self._response_event.wait() self._request_fn = None self._response_event.clear() return self._response def process_event(self): '''Called by GUI thread to check and process hook UI requests.''' # sleep for 0.1 seconds to wait for events self._request_event.wait(0.1) if not self._request_event.is_set(): return assert not self._response_event.is_set() self._request_event.clear() self._response = getattr(self.ui, self._request_fn)(*self._request_args) self._response_event.set() ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport/user_group.py�����������������������������������������������������������������0000664�0000000�0000000�00000001143�14416106601�014121� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2023 Canonical Ltd. # Author: Benjamin Drung <benjamin.drung@canonical.com> # SPDX-License-Identifier: GPL-2.0-or-later """Functions around users and groups.""" import dataclasses import os @dataclasses.dataclass() class UserGroupID: """Pair of user and group ID.""" uid: int gid: int def is_root(self) -> bool: """Check if the user or group ID is root.""" return self.uid == 0 or self.gid == 0 def get_process_user_and_group() -> UserGroupID: """Return the current process’s real user and group.""" return UserGroupID(os.getuid(), os.getgid()) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/apport_python_hook.py����������������������������������������������������������������0000664�0000000�0000000�00000017577�14416106601�014372� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Python sys.excepthook hook to generate apport crash dumps.''' # Copyright (c) 2006 - 2009 Canonical Ltd. # Authors: Robert Collins <robert@ubuntu.com> # Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os import sys CONFIG = '/etc/default/apport' def enabled(): '''Return whether Apport should generate crash reports.''' # This doesn't use apport.packaging.enabled() because it is too heavyweight # See LP: #528355 import re try: with open(CONFIG) as f: conf = f.read() return re.search(r'^\s*enabled\s*=\s*0\s*$', conf, re.M) is None except IOError: # if the file does not exist, assume it's enabled return True def apport_excepthook(exc_type, exc_obj, exc_tb): '''Catch an uncaught exception and make a traceback.''' # create and save a problem report. Note that exceptions in this code # are bad, and we probably need a per-thread reentrancy guard to # prevent that happening. However, on Ubuntu there should never be # a reason for an exception here, other than [say] a read only var # or some such. So what we do is use a try - finally to ensure that # the original excepthook is invoked, and until we get bug reports # ignore the other issues. # import locally here so that there is no routine overhead on python # startup time - only when a traceback occurs will this trigger. try: # ignore 'safe' exit types. if exc_type in (KeyboardInterrupt, ): return # if python apt modules are not built for the python version than it # is not supported. LP: #1774843 try: import apt_pkg # make pyflakes happy apt_pkg.DATE except ImportError: return # do not do anything if apport was disabled if not enabled(): return try: from cStringIO import StringIO StringIO # pyflakes except ImportError: from io import StringIO import re, traceback from apport.fileutils import likely_packaged, get_recent_crashes # apport will look up the package from the executable path. try: binary = os.path.realpath(os.path.join(os.getcwd(), sys.argv[0])) except (TypeError, AttributeError, IndexError): # the module has mutated sys.argv, plan B try: binary = os.readlink('/proc/%i/exe' % os.getpid()) except OSError: return # for interactive python sessions, sys.argv[0] == ''; catch that and # other irregularities if not os.access(binary, os.X_OK) or not os.path.isfile(binary): return # filter out binaries in user accessible paths if not likely_packaged(binary): return import apport.report pr = apport.report.Report() # special handling of dbus-python exceptions if hasattr(exc_obj, 'get_dbus_name'): name = exc_obj.get_dbus_name() if name == 'org.freedesktop.DBus.Error.NoReply': # NoReply is an useless crash, we do not even get the method it # was trying to call; needs actual crash from D-BUS backend (LP #914220) return elif name == 'org.freedesktop.DBus.Error.ServiceUnknown': dbus_service_unknown_analysis(exc_obj, pr) else: pr['_PythonExceptionQualifier'] = name # disambiguate OSErrors with errno: if exc_type == OSError and exc_obj.errno is not None: pr['_PythonExceptionQualifier'] = str(exc_obj.errno) # append a basic traceback. In future we may want to include # additional data such as the local variables, loaded modules etc. tb_file = StringIO() traceback.print_exception(exc_type, exc_obj, exc_tb, file=tb_file) pr['Traceback'] = tb_file.getvalue().strip() pr.add_proc_info(extraenv=['PYTHONPATH', 'PYTHONHOME']) pr.add_user_info() # override the ExecutablePath with the script that was actually running pr['ExecutablePath'] = binary if 'ExecutableTimestamp' in pr: pr['ExecutableTimestamp'] = str(int(os.stat(binary).st_mtime)) try: pr['PythonArgs'] = '%r' % sys.argv except AttributeError: pass if pr.check_ignored(): return mangled_program = re.sub('/', '_', binary) # get the uid for now, user name later user = os.getuid() pr_filename = '%s/%s.%i.crash' % (os.environ.get( 'APPORT_REPORT_DIR', '/var/crash'), mangled_program, user) crash_counter = 0 if os.path.exists(pr_filename): if apport.fileutils.seen_report(pr_filename): # flood protection with open(pr_filename, 'rb') as f: crash_counter = get_recent_crashes(f) + 1 if crash_counter > 1: return # remove the old file, so that we can create the new one with # os.O_CREAT|os.O_EXCL os.unlink(pr_filename) else: # don't clobber existing report return if crash_counter: pr['CrashCounter'] = str(crash_counter) with os.fdopen(os.open(pr_filename, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'wb') as f: pr.write(f) finally: # resume original processing to get the default behaviour, # but do not trigger an AttributeError on interpreter shutdown. if sys: sys.__excepthook__(exc_type, exc_obj, exc_tb) def dbus_service_unknown_analysis(exc_obj, report): from glob import glob import subprocess, re try: from configparser import ConfigParser, NoSectionError, NoOptionError (ConfigParser, NoSectionError, NoOptionError) # pyflakes except ImportError: # Python 2 from ConfigParser import ConfigParser, NoSectionError, NoOptionError # determine D-BUS name m = re.search(r'name\s+(\S+)\s+was not provided by any .service', exc_obj.get_dbus_message()) if not m: if sys.stderr: sys.stderr.write('Error: cannot parse D-BUS name from exception: ' + exc_obj.get_dbus_message()) return dbus_name = m.group(1) # determine .service file and Exec name for the D-BUS name services = [] # tuples of (service file, exe name, running) for f in glob('/usr/share/dbus-1/*services/*.service'): cp = ConfigParser(interpolation=None) cp.read(f, encoding='UTF-8') try: if cp.get('D-BUS Service', 'Name') == dbus_name: exe = cp.get('D-BUS Service', 'Exec') running = (subprocess.call(['pidof', '-sx', exe], stdout=subprocess.PIPE) == 0) services.append((f, exe, running)) except (NoSectionError, NoOptionError): if sys.stderr: sys.stderr.write('Invalid D-BUS .service file %s: %s' % ( f, exc_obj.get_dbus_message())) continue if not services: report['DbusErrorAnalysis'] = 'no service file providing ' + dbus_name else: report['DbusErrorAnalysis'] = 'provided by' for (service, exe, running) in services: report['DbusErrorAnalysis'] += ' %s (%s is %srunning)' % ( service, exe, ('' if running else 'not ')) def install(): '''Install the python apport hook.''' sys.excepthook = apport_excepthook ���������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/backends/����������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416106601�011623� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/backends/packaging-apt-dpkg.py�������������������������������������������������������0000664�0000000�0000000�00000215207�14416106601�015635� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''apport.PackageInfo class implementation for python-apt and dpkg. This is used on Debian and derivatives such as Ubuntu. ''' # Copyright (C) 2007 - 2011 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import subprocess, os, glob, stat, sys, tempfile, shutil, time import hashlib import json from contextlib import closing import warnings warnings.filterwarnings('ignore', 'apt API not stable yet', FutureWarning) import apt try: import cPickle as pickle from urllib import urlopen, quote, unquote (pickle, urlopen, quote, unquote) # pyflakes URLError = IOError HTTPError = IOError except ImportError: # python 3 from urllib.error import URLError, HTTPError from urllib.request import urlopen from urllib.parse import quote, unquote import pickle import apport from apport.packaging import PackageInfo class __AptDpkgPackageInfo(PackageInfo): '''Concrete apport.PackageInfo class implementation for python-apt and dpkg, as found on Debian and derivatives such as Ubuntu.''' def __init__(self): self._apt_cache = None self._sandbox_apt_cache = None self._sandbox_apt_cache_arch = None self._contents_dir = None self._mirror = None self._virtual_mapping_obj = None self._contents_mapping_obj = None self._launchpad_base = 'https://api.launchpad.net/devel' self._ppa_archive_url = self._launchpad_base + '/~%(user)s/+archive/%(distro)s/%(ppaname)s' self._contents_update = False def __del__(self): try: if self._contents_dir: shutil.rmtree(self._contents_dir) except AttributeError: pass def _virtual_mapping(self, configdir): if self._virtual_mapping_obj is not None: return self._virtual_mapping_obj mapping_file = os.path.join(configdir, 'virtual_mapping.pickle') if os.path.exists(mapping_file): with open(mapping_file, 'rb') as fp: self._virtual_mapping_obj = pickle.load(fp) else: self._virtual_mapping_obj = {} return self._virtual_mapping_obj def _save_virtual_mapping(self, configdir): mapping_file = os.path.join(configdir, 'virtual_mapping.pickle') if self._virtual_mapping_obj is not None: with open(mapping_file, 'wb') as fp: pickle.dump(self._virtual_mapping_obj, fp) def _contents_mapping(self, configdir, release, arch): if self._contents_mapping_obj and \ self._contents_mapping_obj['release'] == release and \ self._contents_mapping_obj['arch'] == arch: return self._contents_mapping_obj mapping_file = os.path.join(configdir, 'contents_mapping-%s-%s.pickle' % (release, arch)) if os.path.exists(mapping_file) and os.stat(mapping_file).st_size == 0: os.remove(mapping_file) if os.path.exists(mapping_file): with open(mapping_file, 'rb') as fp: self._contents_mapping_obj = pickle.load(fp) else: self._contents_mapping_obj = {'release': release, 'arch': arch} return self._contents_mapping_obj def _save_contents_mapping(self, configdir, release, arch): mapping_file = os.path.join(configdir, 'contents_mapping-%s-%s.pickle' % (release, arch)) if self._contents_mapping_obj is not None: try: with open(mapping_file, 'wb') as fp: pickle.dump(self._contents_mapping_obj, fp) # rather than crashing on systems with little memory just don't # write the crash file except MemoryError: pass def _cache(self): '''Return apt.Cache() (initialized lazily).''' self._sandbox_apt_cache = None if not self._apt_cache: try: # avoid spewage on stdout progress = apt.progress.base.OpProgress() self._apt_cache = apt.Cache(progress, rootdir='/') except AttributeError: # older python-apt versions do not yet have above argument self._apt_cache = apt.Cache(rootdir='/') return self._apt_cache def _sandbox_cache(self, aptroot, apt_sources, fetchProgress, distro_name, release_codename, origins, arch): '''Build apt sandbox and return apt.Cache(rootdir=) (initialized lazily). Clear the package selection on subsequent calls. ''' self._apt_cache = None if not self._sandbox_apt_cache or arch != self._sandbox_apt_cache_arch: self._build_apt_sandbox(aptroot, apt_sources, distro_name, release_codename, origins) rootdir = os.path.abspath(aptroot) self._sandbox_apt_cache = apt.Cache(rootdir=rootdir) self._sandbox_apt_cache_arch = arch try: # We don't need to update this multiple times. self._sandbox_apt_cache.update(fetchProgress) except apt.cache.FetchFailedException as e: raise SystemError(str(e)) self._sandbox_apt_cache.open() else: self._sandbox_apt_cache.clear() return self._sandbox_apt_cache def _apt_pkg(self, package): '''Return apt.Cache()[package] (initialized lazily). Throw a ValueError if the package does not exist. ''' try: return self._cache()[package] except KeyError: raise ValueError('package %s does not exist' % package) def get_version(self, package): '''Return the installed version of a package.''' pkg = self._apt_pkg(package) inst = pkg.installed if not inst: raise ValueError('package %s does not exist' % package) return inst.version def get_available_version(self, package): '''Return the latest available version of a package.''' return self._apt_pkg(package).candidate.version def get_dependencies(self, package): '''Return a list of packages a package depends on.''' cur_ver = self._apt_pkg(package)._pkg.current_ver if not cur_ver: # happens with virtual packages return [] return [d[0].target_pkg.name for d in cur_ver.depends_list.get('Depends', []) + cur_ver.depends_list.get('PreDepends', []) + cur_ver.depends_list.get('Recommends', [])] def get_source(self, package): '''Return the source package name for a package.''' if self._apt_pkg(package).installed: return self._apt_pkg(package).installed.source_name elif self._apt_pkg(package).candidate: return self._apt_pkg(package).candidate.source_name else: raise ValueError('package %s does not exist' % package) def get_package_origin(self, package): '''Return package origin. Return the repository name from which a package was installed, or None if it cannot be determined. Throw ValueError if package is not installed. ''' pkg = self._apt_pkg(package).installed if not pkg: raise ValueError('package is not installed') for origin in pkg.origins: if origin.origin: return origin.origin return None def is_distro_package(self, package): '''Check if a package is a genuine distro package. Return True for a native distro package, False if it comes from a third-party source. ''' pkg = self._apt_pkg(package) # some PPA packages have installed version None, see LP#252734 if pkg.installed and pkg.installed.version is None: return False distro_name = self.get_os_version()[0] if pkg.candidate and pkg.candidate.origins: # might be None for o in pkg.candidate.origins: if o.origin == distro_name: return True # on Ubuntu system-image we might not have any /var/lib/apt/lists if set([o.origin for o in pkg.candidate.origins]) == set(['']) and \ os.path.exists('/etc/system-image/channel.ini'): return True return False def is_native_origin_package(self, package): '''Check if a package originated from a native location Return True for a package which came from an origin which is listed in native-origins.d, False if it comes from a third-party source. ''' pkg = self._apt_pkg(package) # some PPA packages have installed version None, see LP#252734 if pkg.installed and pkg.installed.version is None: return False native_origins = [] for f in glob.glob('/etc/apport/native-origins.d/*'): try: with open(f) as fd: for line in fd: line = line.strip() if line: native_origins.append(line) except IOError: pass if pkg.candidate and pkg.candidate.origins: # might be None for o in pkg.candidate.origins: if o.origin in native_origins: return True return False def get_lp_binary_package(self, distro_id, release, package, version, arch): # allow unauthenticated downloads apt.apt_pkg.config.set('APT::Get::AllowUnauthenticated', 'True') from launchpadlib.launchpad import Launchpad launchpad = Launchpad.login_anonymously('apport-retrace', 'production', version='devel') ubuntu = launchpad.distributions['ubuntu'] series = ubuntu.getSeries(name_or_version=release.split()[-1]) das = series.getDistroArchSeries(archtag=arch) primary = ubuntu.getArchive(name='primary') bpph = primary.getPublishedBinaries(binary_name=package, version=version, distro_arch_series=das, ordered=False, exact_match=True) if not bpph: return (None, None) bf_urls = '' for bp in bpph: if bp.status == 'Deleted': continue if not bp.architecture_specific: # include_meta is required to get the sha1 bf_urls = bp.binaryFileUrls(include_meta=True) break elif bp.distro_arch_series_link.endswith(arch): bf_urls = bp.binaryFileUrls(include_meta=True) break if not bf_urls: return (None, None) for bf in bf_urls: # return the first binary file url since there being more than one # is theoretical return(bf['url'], bf['sha1']) def json_request(self, url, entries=False): '''Open, read and parse the json of a url Set entries to True when the json data returned by Launchpad has a dictionary with an entries key which contains the data desired. ''' try: response = urlopen(url) if response.getcode() >= 400: raise HTTPError('%u' % response.getcode()) except (URLError, HTTPError): apport.warning('cannot connect to: %s' % unquote(url)) return None try: content = response.read() except IOError: apport.warning('failure reading data at: %s' % unquote(url)) return None if isinstance(content, bytes): content = content.decode('utf-8') if entries: return json.loads(content)['entries'] else: return json.loads(content) def get_lp_source_package(self, distro_id, package, version): from launchpadlib.launchpad import Launchpad launchpad = Launchpad.login_anonymously('apport-retrace', 'production', version='devel') ubuntu = launchpad.distributions['ubuntu'] primary = ubuntu.getArchive(name='primary') pss = primary.getPublishedSources(source_name=package, version=version, exact_match=True) if not pss: return None sfus = '' for ps in pss: if ps.status == 'Deleted': continue sfus = ps.sourceFileUrls() # use the first entry as they are sorted chronologically break if not sfus: return None source_files = [] for sfu in sfus: source_files.append(sfu) return source_files def get_architecture(self, package): '''Return the architecture of a package. This might differ on multiarch architectures (e. g. an i386 Firefox package on a x86_64 system)''' if self._apt_pkg(package).installed: return self._apt_pkg(package).installed.architecture or 'unknown' elif self._apt_pkg(package).candidate: return self._apt_pkg(package).candidate.architecture or 'unknown' else: raise ValueError('package %s does not exist' % package) def get_files(self, package): '''Return list of files shipped by a package.''' list = self._call_dpkg(['-L', package]) if list is None: return None return [f for f in list.splitlines() if not f.startswith('diverted')] def get_modified_files(self, package): '''Return list of all modified files of a package.''' # get the maximum mtime of package files that we consider unmodified listfile = '/var/lib/dpkg/info/%s:%s.list' % (package, self.get_system_architecture()) if not os.path.exists(listfile): listfile = '/var/lib/dpkg/info/%s.list' % package try: s = os.stat(listfile) if not stat.S_ISREG(s.st_mode): raise OSError max_time = max(s.st_mtime, s.st_ctime) except OSError: return [] # create a list of files with a newer timestamp for md5sum'ing sums = b'' sumfile = '/var/lib/dpkg/info/%s:%s.md5sums' % (package, self.get_system_architecture()) if not os.path.exists(sumfile): sumfile = '/var/lib/dpkg/info/%s.md5sums' % package if not os.path.exists(sumfile): # some packages do not ship md5sums return [] with open(sumfile, 'rb') as fd: for line in fd: try: # ignore lines with NUL bytes (happens, LP#96050) if b'\0' in line: apport.warning('%s contains NUL character, ignoring line', sumfile) continue words = line.split() if not words: apport.warning('%s contains empty line, ignoring line', sumfile) continue s = os.stat(('/' + words[-1].decode('UTF-8')).encode('UTF-8')) if max(s.st_mtime, s.st_ctime) <= max_time: continue except OSError: pass sums += line if sums: return self._check_files_md5(sums) else: return [] def get_modified_conffiles(self, package): '''Return modified configuration files of a package. Return a file name -> file contents map of all configuration files of package. Please note that apport.hookutils.attach_conffiles() is the official user-facing API for this, which will ask for confirmation and allows filtering. ''' dpkg = subprocess.Popen(['dpkg-query', '-W', '--showformat=${Conffiles}', '--', package], stdout=subprocess.PIPE) out = dpkg.communicate()[0].decode() if dpkg.returncode != 0: return {} modified = {} for line in out.splitlines(): if not line: continue # just take the first two fields, to not stumble over obsolete # conffiles path, default_md5sum = line.strip().split()[:2] if os.path.exists(path): try: with open(path, 'rb') as fd: contents = fd.read() m = hashlib.md5() m.update(contents) calculated_md5sum = m.hexdigest() if calculated_md5sum != default_md5sum: modified[path] = contents except IOError as e: modified[path] = '[inaccessible: %s]' % str(e) else: modified[path] = '[deleted]' return modified def __fgrep_files(self, pattern, file_list): '''Call fgrep for a pattern on given file list and return the first matching file, or None if no file matches.''' match = None slice_size = 100 i = 0 while not match and i < len(file_list): p = subprocess.Popen(['fgrep', '-lxm', '1', '--', pattern] + file_list[i:(i + slice_size)], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out = p.communicate()[0].decode('UTF-8') if p.returncode == 0: match = out i += slice_size return match def get_file_package(self, file, uninstalled=False, map_cachedir=None, release=None, arch=None): '''Return the package a file belongs to. Return None if the file is not shipped by any package. If uninstalled is True, this will also find files of uninstalled packages; this is very expensive, though, and needs network access and lots of CPU and I/O resources. In this case, map_cachedir can be set to an existing directory which will be used to permanently store the downloaded maps. If it is not set, a temporary directory will be used. Also, release and arch can be set to a foreign release/architecture instead of the one from the current system. ''' if uninstalled: return self._search_contents(file, map_cachedir, release, arch) # check if the file is a diversion dpkg = subprocess.Popen(['dpkg-divert', '--list', file], stdout=subprocess.PIPE, stderr=subprocess.PIPE) out = dpkg.communicate()[0].decode('UTF-8') if dpkg.returncode == 0 and out: pkg = out.split()[-1] if pkg != 'hardening-wrapper': return pkg fname = os.path.splitext(os.path.basename(file))[0].lower() all_lists = [] likely_lists = [] for f in glob.glob('/var/lib/dpkg/info/*.list'): p = os.path.splitext(os.path.basename(f))[0].lower().split(':')[0] if p in fname or fname in p: likely_lists.append(f) else: all_lists.append(f) # first check the likely packages match = self.__fgrep_files(file, likely_lists) if not match: match = self.__fgrep_files(file, all_lists) # with usrmerge some binaries appear in usr but their .list file # doesn't reflect that so strip the /usr from the path if not match and file.startswith('/usr'): file = file[4:] match = self.__fgrep_files('%s' % file, likely_lists) if not match: match = self.__fgrep_files('%s' % file, all_lists) if match: return os.path.splitext(os.path.basename(match))[0].split(':')[0] return None @classmethod def get_system_architecture(klass): '''Return the architecture of the system, in the notation used by the particular distribution.''' dpkg = subprocess.Popen(['dpkg', '--print-architecture'], stdout=subprocess.PIPE) arch = dpkg.communicate()[0].decode().strip() assert dpkg.returncode == 0 assert arch return arch def get_library_paths(self): '''Return a list of default library search paths. The entries should be separated with a colon ':', like for $LD_LIBRARY_PATH. This needs to take any multiarch directories into account. ''' dpkg = subprocess.Popen(['dpkg-architecture', '-qDEB_HOST_MULTIARCH'], stdout=subprocess.PIPE) multiarch_triple = dpkg.communicate()[0].decode().strip() assert dpkg.returncode == 0 return '/lib/%s:/lib' % multiarch_triple def set_mirror(self, url): '''Explicitly set a distribution mirror URL for operations that need to fetch distribution files/packages from the network. By default, the mirror will be read from the system configuration files. ''' self._mirror = url # purge our contents dir cache try: if self._contents_dir: shutil.rmtree(self._contents_dir) self._contents_dir = None except AttributeError: pass def get_source_tree(self, srcpackage, dir, version=None, sandbox=None, apt_update=False): '''Download source package and unpack it into dir. This also has to care about applying patches etc., so that dir will eventually contain the actually compiled source. dir needs to exist and should be empty. If version is given, this particular version will be retrieved. Otherwise this will fetch the latest available version. If sandbox is given, it calls apt-get source in that sandbox, otherwise it uses the system apt configuration. If apt_update is True, it will call apt-get update before apt-get source. This is mostly necessary for freshly created sandboxes. Return the directory that contains the actual source root directory (which might be a subdirectory of dir). Return None if the source is not available. ''' # configure apt for sandbox env = os.environ.copy() if sandbox: f = tempfile.NamedTemporaryFile() f.write(('''Dir "%s"; Dir::State::Status "/var/lib/dpkg/status"; Debug::NoLocking "true"; ''' % sandbox).encode()) f.flush() env['APT_CONFIG'] = f.name if apt_update: subprocess.call(['apt-get', '-qq', 'update'], env=env) # fetch source tree argv = ['apt-get', '-qq', '--assume-yes', 'source', srcpackage] if version: argv[-1] += '=' + version try: if subprocess.call(argv, cwd=dir, env=env) != 0: if not version: return None sf_urls = self.get_lp_source_package(self.get_distro_name(), srcpackage, version) if sf_urls: proxy = '' if apt.apt_pkg.config.find('Acquire::http::Proxy') != '': proxy = apt.apt_pkg.config.find('Acquire::http::Proxy') apt.apt_pkg.config.set('Acquire::http::Proxy', '') fetchProgress = apt.progress.base.AcquireProgress() fetcher = apt.apt_pkg.Acquire(fetchProgress) af_queue = [] for sf in sf_urls: af_queue.append(apt.apt_pkg.AcquireFile(fetcher, sf, destdir=dir)) result = fetcher.run() if result != fetcher.RESULT_CONTINUE: return None if proxy: apt.apt_pkg.config.set('Acquire::http::Proxy', proxy) for dsc in glob.glob(os.path.join(dir, '*.dsc')): subprocess.call(['dpkg-source', '-sn', '-x', dsc], stdout=subprocess.PIPE, cwd=dir) else: return None except OSError: return None # find top level directory root = None for d in glob.glob(os.path.join(dir, srcpackage + '-*')): if os.path.isdir(d): root = d assert root, 'could not determine source tree root directory' # apply patches on a best-effort basis try: subprocess.call('(debian/rules patch || debian/rules apply-patches ' '|| debian/rules apply-dpatches || ' 'debian/rules unpack || debian/rules patch-stamp || ' 'debian/rules setup) >/dev/null 2>&1', shell=True, cwd=root) except OSError: pass return root def get_kernel_package(self): '''Return the actual Linux kernel package name. This is used when the user reports a bug against the "linux" package. ''' # TODO: Ubuntu specific return 'linux-image-' + os.uname()[2] def _install_debug_kernel(self, report): '''Install kernel debug package Ideally this would be just another package but the kernel is special in various ways currently so we can not use the apt method. ''' installed = [] outdated = [] kver = report['Uname'].split()[1] arch = report['Architecture'] ver = report['Package'].split()[1] debug_pkgname = 'linux-image-debug-%s' % kver c = self._cache() if debug_pkgname in c and c[debug_pkgname].isInstalled: # print('kernel ddeb already installed') return (installed, outdated) target_dir = apt.apt_pkg.config.find_dir('Dir::Cache::archives') + '/partial' deb = '%s_%s_%s.ddeb' % (debug_pkgname, ver, arch) # FIXME: this package is currently not in Packages.gz url = 'http://ddebs.ubuntu.com/pool/main/l/linux/%s' % deb out = open(os.path.join(target_dir, deb), 'w') # urlretrieve does not return 404 in the headers so we use urlopen u = urlopen(url) if u.getcode() > 400: return ('', 'linux') while True: block = u.read(8 * 1024) if not block: break out.write(block) out.flush() out.close() ret = subprocess.call(['dpkg', '-i', os.path.join(target_dir, deb)]) if ret == 0: installed.append(deb.split('_')[0]) return (installed, outdated) def install_packages(self, rootdir, configdir, release, packages, verbose=False, cache_dir=None, permanent_rootdir=False, architecture=None, origins=None, install_dbg=True, install_deps=False): '''Install packages into a sandbox (for apport-retrace). In order to work without any special permissions and without touching the running system, this should only download and unpack packages into the given root directory, not install them into the system. configdir points to a directory with by-release configuration files for the packaging system; this is completely dependent on the backend implementation, the only assumption is that this looks into configdir/release/, so that you can use retracing for multiple DistroReleases. As a special case, if configdir is None, it uses the current system configuration, and "release" is ignored. release is the value of the report's 'DistroRelease' field. packages is a list of ('packagename', 'version') tuples. If the version is None, it should install the most current available version. If cache_dir is given, then the downloaded packages will be stored there, to speed up subsequent retraces. If permanent_rootdir is True, then the sandbox created from the downloaded packages will be reused, to speed up subsequent retraces. If architecture is given, the sandbox will be created with packages of the given architecture (as specified in a report's "Architecture" field). If not given it defaults to the host system's architecture. If origins is given, the sandbox will be created with apt data sources for foreign origins. If install_deps is True, then the dependencies of packages will also be installed. Return a string with outdated packages, or an empty string if all packages were installed. If something is wrong with the environment (invalid configuration, package servers down, etc.), this should raise a SystemError with a meaningful error message. ''' if not architecture: architecture = self.get_system_architecture() if not configdir: apt_sources = '/etc/apt/sources.list' self.current_release_codename = self.get_distro_codename() else: # support architecture specific config, fall back to global config apt_sources = os.path.join(configdir, release, 'sources.list') if architecture != self.get_system_architecture(): arch_apt_sources = os.path.join(configdir, release, architecture, 'sources.list') if os.path.exists(arch_apt_sources): apt_sources = arch_apt_sources # set mirror for get_file_package() try: self.set_mirror(self._get_primary_mirror_from_apt_sources(apt_sources)) except SystemError as e: apport.warning('cannot determine mirror: %s' % str(e)) # set current release code name for _distro_release_to_codename with open(os.path.join(configdir, release, 'codename')) as f: self.current_release_codename = f.read().strip() if not os.path.exists(apt_sources): raise SystemError('%s does not exist' % apt_sources) # create apt sandbox if cache_dir: tmp_aptroot = False if architecture != self.get_system_architecture(): aptroot_arch = architecture else: aptroot_arch = '' if configdir: aptroot = os.path.join(cache_dir, release, aptroot_arch, 'apt') else: aptroot = os.path.join(cache_dir, 'system', aptroot_arch, 'apt') if not os.path.isdir(aptroot): os.makedirs(aptroot) else: tmp_aptroot = True aptroot = tempfile.mkdtemp() apt.apt_pkg.config.set('APT::Architecture', architecture) apt.apt_pkg.config.set('Acquire::Languages', 'none') # directly connect to Launchpad when downloading deb files apt.apt_pkg.config.set('Acquire::http::Proxy::api.launchpad.net', 'DIRECT') apt.apt_pkg.config.set('Acquire::http::Proxy::launchpad.net', 'DIRECT') if verbose: fetchProgress = apt.progress.text.AcquireProgress() else: fetchProgress = apt.progress.base.AcquireProgress() if not tmp_aptroot: cache = self._sandbox_cache(aptroot, apt_sources, fetchProgress, self.get_distro_name(), self.current_release_codename, origins, architecture) else: self._build_apt_sandbox(aptroot, apt_sources, self.get_distro_name(), self.current_release_codename, origins) cache = apt.Cache(rootdir=os.path.abspath(aptroot)) try: cache.update(fetchProgress) except apt.cache.FetchFailedException as e: raise SystemError(str(e)) cache.open() archivedir = apt.apt_pkg.config.find_dir("Dir::Cache::archives") obsolete = '' src_records = apt.apt_pkg.SourceRecords() # read original package list pkg_list = os.path.join(rootdir, 'packages.txt') pkg_versions = {} if os.path.exists(pkg_list): with open(pkg_list) as f: for line in f: line = line.strip() if not line: continue (p, v) = line.split() pkg_versions[p] = v # mark packages for installation real_pkgs = set() lp_cache = {} fetcher = apt.apt_pkg.Acquire(fetchProgress) # need to keep AcquireFile references acquire_queue = [] # add any dependencies to the packages list if install_deps: deps = [] for (pkg, ver) in packages: try: cache_pkg = cache[pkg] except KeyError: m = 'package %s does not exist, ignoring' % pkg.replace('%', '%%') obsolete += m + '\n' apport.warning(m) continue for dep in cache_pkg.candidate.dependencies: # the version in dep is the one from pkg's dependencies, # so use the version from the cache dep_pkg_vers = cache[dep[0].name].candidate.version # if the dependency is in the list of packages we don't # need to look up its dependencies again if dep[0].name in [pkg[0] for pkg in packages]: continue # if the package is already extracted in the sandbox # because the report needs that package we don't want to # install a newer version which may cause a CRC mismatch # with the installed dbg symbols if dep[0].name in pkg_versions: inst_version = pkg_versions[dep[0].name] if self.compare_versions(inst_version, dep_pkg_vers) > -1: deps.append((dep[0].name, inst_version)) else: deps.append((dep[0].name, dep_pkg_vers)) else: deps.append((dep[0].name, dep_pkg_vers)) if dep[0].name not in [pkg[0] for pkg in packages]: packages.append((dep[0].name, None)) packages.extend(deps) for (pkg, ver) in packages: try: cache_pkg = cache[pkg] except KeyError: m = 'package %s does not exist, ignoring' % pkg.replace('%', '%%') obsolete += m + '\n' apport.warning(m) continue # try to select matching version try: if ver: cache_pkg.candidate = cache_pkg.versions[ver] except KeyError: (lp_url, sha1sum) = self.get_lp_binary_package(self.get_distro_name(), release, pkg, ver, architecture) if lp_url: acquire_queue.append(apt.apt_pkg.AcquireFile(fetcher, lp_url, hash="sha1:%s" % sha1sum, destdir=archivedir)) lp_cache[pkg] = ver else: obsolete += '%s version %s required, but %s is available\n' % (pkg, ver, cache_pkg.candidate.version) candidate = cache_pkg.candidate real_pkgs.add(pkg) if permanent_rootdir: virtual_mapping = self._virtual_mapping(aptroot) # Remember all the virtual packages that this package provides, # so that if we encounter that virtual package as a # Conflicts/Replaces later, we know to remove this package from # the cache. for p in candidate.provides: virtual_mapping.setdefault(p, set()).add(pkg) conflicts = [] if 'Conflicts' in candidate.record: conflicts += apt.apt_pkg.parse_depends(candidate.record['Conflicts']) if 'Replaces' in candidate.record: conflicts += apt.apt_pkg.parse_depends(candidate.record['Replaces']) for conflict in conflicts: # if the package conflicts with itself its wonky e.g. # gdb in artful if conflict[0][0] == candidate.package.name: continue # apt_pkg.parse_depends needs to handle the or operator, # but as policy states it is invalid to use that in # Replaces/Depends, we can safely choose the first value # here. conflict = conflict[0] if cache.is_virtual_package(conflict[0]): try: providers = virtual_mapping[conflict[0]] except KeyError: # We may not have seen the virtual package that # this conflicts with, so we can assume it's not # unpacked into the sandbox. continue for p in providers: # if the candidate package being installed # conflicts with but also provides a virtual # package don't act on the candidate e.g. # libpam-modules and libpam-mkhomedir in artful if p == candidate.package.name: continue debs = os.path.join(archivedir, '%s_*.deb' % p) for path in glob.glob(debs): ver = self._deb_version(path) if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): os.unlink(path) try: del pkg_versions[p] except KeyError: pass del providers else: debs = os.path.join(archivedir, '%s_*.deb' % conflict[0]) for path in glob.glob(debs): ver = self._deb_version(path) if apt.apt_pkg.check_dep(ver, conflict[2], conflict[1]): os.unlink(path) try: del pkg_versions[conflict[0]] except KeyError: pass if candidate.architecture != 'all' and install_dbg: try: dbg_pkg = pkg + '-dbg' dbg = cache[dbg_pkg] pkg_found = False # try to get the same version as pkg if ver: try: dbg.candidate = dbg.versions[ver] pkg_found = True except KeyError: (lp_url, sha1sum) = self.get_lp_binary_package(self.get_distro_name(), release, dbg_pkg, ver, architecture) if lp_url: acquire_queue.append(apt.apt_pkg.AcquireFile(fetcher, lp_url, hash="sha1:%s" % sha1sum, destdir=archivedir)) lp_cache[dbg_pkg] = ver pkg_found = True # if it can't be found in Launchpad failover to a # code path that'll use -dbgsym packages else: raise KeyError if not pkg_found: try: dbg.candidate = dbg.versions[candidate.version] except KeyError: obsolete += 'outdated -dbg package for %s: package version %s -dbg version %s\n' % ( pkg, ver, dbg.candidate.version) real_pkgs.add(dbg_pkg) except KeyError: # install all -dbg from the source package; lookup() just # works from the current list pointer, we always need to # start from the beginning src_records.restart() if src_records.lookup(candidate.source_name): # ignore transitional packages dbgs = [p for p in src_records.binaries if p.endswith('-dbg') and p in cache and 'transitional' not in cache[p].candidate.description] # if a specific version of a package was requested # only install dbg pkgs whose version matches if ver: for dbg in dbgs: if cache[dbg].candidate.version != ver: dbgs.remove(dbg) else: dbgs = [] if dbgs: for p in dbgs: # if the package has already been added to # real_pkgs don't search for it again if p in real_pkgs: continue pkg_found = False # prefer the version requested if ver: try: cache[p].candidate = cache[p].versions[ver] pkg_found = True except KeyError: (lp_url, sha1sum) = self.get_lp_binary_package(self.get_distro_name(), release, p, ver, architecture) if lp_url: acquire_queue.append(apt.apt_pkg.AcquireFile(fetcher, lp_url, hash="sha1:%s" % sha1sum, destdir=archivedir)) lp_cache[p] = ver pkg_found = True if not pkg_found: try: cache[p].candidate = cache[p].versions[candidate.version] except KeyError: # we don't really expect that, but it's possible that # other binaries have a different version pass real_pkgs.add(p) else: pkg_found = False dbgsym_pkg = pkg + '-dbgsym' try: dbgsym = cache[dbgsym_pkg] real_pkgs.add(dbgsym_pkg) # prefer the version requested if ver: try: dbgsym.candidate = dbgsym.versions[ver] pkg_found = True except KeyError: (lp_url, sha1sum) = self.get_lp_binary_package(self.get_distro_name(), release, dbgsym_pkg, ver, architecture) if lp_url: acquire_queue.append(apt.apt_pkg.AcquireFile(fetcher, lp_url, hash="sha1:%s" % sha1sum, destdir=archivedir)) lp_cache[dbgsym_pkg] = ver pkg_found = True if not pkg_found: try: dbgsym.candidate = dbgsym.versions[candidate.version] except KeyError: obsolete += 'outdated debug symbol package for %s: package version %s dbgsym version %s\n' % ( pkg, candidate.version, dbgsym.candidate.version) except KeyError: if ver: (lp_url, sha1sum) = self.get_lp_binary_package(self.get_distro_name(), release, dbgsym_pkg, ver, architecture) if lp_url: acquire_queue.append(apt.apt_pkg.AcquireFile(fetcher, lp_url, hash="sha1:%s" % sha1sum, destdir=archivedir)) lp_cache[dbgsym_pkg] = ver pkg_found = True if not pkg_found: obsolete += 'no debug symbol package found for %s\n' % pkg # unpack packages, weed out the ones that are already installed (for # permanent sandboxes) requested_pkgs = dict(packages) for p in real_pkgs.copy(): if p in requested_pkgs: if requested_pkgs[p] is None: # We already have the latest version of this package if pkg_versions.get(p) == cache[p].candidate.version: # print('Removing %s which is already the right version' % p) real_pkgs.remove(p) else: # print('Installing %s version %s' % (p, cache[p].candidate.version)) cache[p].mark_install(False, False) elif pkg_versions.get(p) != requested_pkgs[p]: # print('Installing %s version %s' % (p, cache[p].candidate.version)) cache[p].mark_install(False, False) elif pkg_versions.get(p) != cache[p].candidate.version: # print('Installing %s version %s' % (p, cache[p].candidate.version)) cache[p].mark_install(False, False) else: # print('Removing %s which is already the right version' % p) real_pkgs.remove(p) else: if pkg_versions.get(p) != cache[p].candidate.version: # print('Installing %s' % p) cache[p].mark_install(False, False) else: # print('Removing %s which is already the right version' % p) real_pkgs.remove(p) last_written = time.time() # fetch packages try: cache.fetch_archives(fetcher=fetcher) except apt.cache.FetchFailedException as e: apport.error('Package download error, try again later: %s', str(e)) sys.exit(1) # transient error if verbose: print('Extracting downloaded debs...') for i in fetcher.items: out = subprocess.check_output(['dpkg-deb', '--show', i.destfile]).decode() (p, v) = out.strip().split() if not permanent_rootdir or p not in pkg_versions or os.path.getctime(i.destfile) > last_written: # don't extract the same version of the package if it is # already extracted if pkg_versions.get(p) == v: pass # don't extract the package if it is a different version than # the one we want to extract from Launchpad elif p in lp_cache and lp_cache[p] != v: pass else: subprocess.check_call(['dpkg', '-x', i.destfile, rootdir]) pkg_versions[p] = v pkg_name = os.path.basename(i.destfile).split('_', 1)[0] # because a package may exist multiple times in the fetcher it may # have already been removed if pkg_name in real_pkgs: real_pkgs.remove(pkg_name) # update package list pkgs = list(pkg_versions.keys()) pkgs.sort() with open(pkg_list, 'w') as f: for p in pkgs: f.write(p) f.write(' ') f.write(pkg_versions[p]) f.write('\n') if tmp_aptroot: shutil.rmtree(aptroot) # check bookkeeping that apt fetcher really got everything assert not real_pkgs, 'apt fetcher did not fetch these packages: ' \ + ' '.join(real_pkgs) if permanent_rootdir: self._save_virtual_mapping(aptroot) return obsolete def package_name_glob(self, nameglob): '''Return known package names which match given glob.''' return glob.fnmatch.filter(self._cache().keys(), nameglob) # # Internal helper methods # @classmethod def _call_dpkg(klass, args): '''Call dpkg with given arguments and return output, or return None on error.''' dpkg = subprocess.Popen(['dpkg'] + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out = dpkg.communicate(input)[0].decode('UTF-8') if dpkg.returncode == 0: return out else: raise ValueError('package does not exist') def _check_files_md5(self, sumfile): '''Internal function for calling md5sum. This is separate from get_modified_files so that it is automatically testable. ''' if os.path.exists(sumfile): m = subprocess.Popen(['/usr/bin/md5sum', '-c', sumfile], stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd='/', env={}) out = m.communicate()[0].decode('UTF-8', errors='replace') else: assert type(sumfile) == bytes, 'md5sum list value must be a byte array' m = subprocess.Popen(['/usr/bin/md5sum', '-c'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd='/', env={}) out = m.communicate(sumfile)[0].decode('UTF-8', errors='replace') # if md5sum succeeded, don't bother parsing the output if m.returncode == 0: return [] mismatches = [] for line in out.splitlines(): if line.endswith('FAILED'): mismatches.append(line.rsplit(':', 1)[0]) return mismatches @classmethod def _get_primary_mirror_from_apt_sources(klass, apt_sources): '''Heuristically determine primary mirror from an apt sources.list''' with open(apt_sources) as f: for line in f: fields = line.split() if len(fields) >= 3 and fields[0] == 'deb': if fields[1].startswith('['): # options given, mirror is in third field mirror_idx = 2 else: mirror_idx = 1 if fields[mirror_idx].startswith('http://') or \ fields[mirror_idx].startswith('https://'): return fields[mirror_idx] else: raise SystemError('cannot determine default mirror: %s does not contain a valid deb line' % apt_sources) def _get_mirror(self): '''Return the distribution mirror URL. If it has not been set yet, it will be read from the system configuration.''' if not self._mirror: self._mirror = self._get_primary_mirror_from_apt_sources('/etc/apt/sources.list') return self._mirror def _distro_release_to_codename(self, release): '''Map a DistroRelease: field value to a release code name''' # if we called install_packages() with a configdir, we can read the # codename from there if hasattr(self, 'current_release_codename') and self.current_release_codename is not None: return self.current_release_codename raise NotImplementedError('Cannot map DistroRelease to a code name without install_packages()') def _search_contents(self, file, map_cachedir, release, arch): '''Internal function for searching file in Contents.gz.''' if map_cachedir: dir = map_cachedir else: if not self._contents_dir: self._contents_dir = tempfile.mkdtemp() dir = self._contents_dir if arch is None: arch = self.get_system_architecture() if release is None: release = self.get_distro_codename() else: release = self._distro_release_to_codename(release) # this is ordered by likelihood of installation with the most common # last for pocket in ['-proposed', '', '-security', '-updates']: map = os.path.join(dir, '%s%s-Contents-%s.gz' % (release, pocket, arch)) # check if map exists and is younger than a day; if not, we need # to refresh it update = False try: st = os.stat(map) age = int(time.time() - st.st_mtime) except OSError: age = None if age is None or age >= 86400: url = '%s/dists/%s%s/Contents-%s.gz' % (self._get_mirror(), release, pocket, arch) if age: try: from httplib import HTTPConnection from urlparse import urlparse except ImportError: # python 3 from http.client import HTTPConnection from urllib.parse import urlparse from datetime import datetime # HTTPConnection requires server name e.g. # archive.ubuntu.com server = urlparse(url)[1] conn = HTTPConnection(server) conn.request("HEAD", urlparse(url)[2]) res = conn.getresponse() modified_str = res.getheader('last-modified', None) if modified_str: modified = datetime.strptime(modified_str, '%a, %d %b %Y %H:%M:%S %Z') update = (modified > datetime.fromtimestamp(st.st_mtime)) else: update = True else: update = True if update: self._contents_update = True try: src = urlopen(url) except IOError: # we ignore non-existing pockets, but we do crash if the # release pocket doesn't exist if pocket == '': raise else: continue with open(map, 'wb') as f: while True: data = src.read(1000000) if not data: break f.write(data) src.close() assert os.path.exists(map) contents_mapping = self._contents_mapping(dir, release, arch) # if the mapping is empty build it if not contents_mapping or len(contents_mapping) == 2: self._contents_update = True # if any of the Contents files were updated we need to update the # map because the ordering in which is created is important if self._contents_update: import gzip with gzip.open('%s' % map, 'rb') as contents: line_num = 0 for line in contents: line_num += 1 # the first 32 lines are descriptive only for these # releases if pocket == '' and release in ['trusty', 'xenial'] \ and line_num < 33: continue path = line.split()[0] if path.split(b'/')[0] == b'usr': if path.split(b'/')[1] not in (b'lib', b'libexec', b'libx32', b'bin', b'sbin', b'share', b'games', b'Brother'): continue if path.split(b'/')[1] == b'share' and \ path.split(b'/')[2] in (b'doc', b'icons', b'man', b'texlive', b'gocode', b'locale', b'help'): continue package = line.split()[-1].split(b',')[0].split(b'/')[-1] elif path.split(b'/')[0] in (b'lib', b'bin', b'sbin'): package = line.split()[-1].split(b',')[0].split(b'/')[-1] else: continue if path in contents_mapping: if package == contents_mapping[path]: continue else: # if the package was updated use the update # b/c everyone should have packages from # -updates and -security installed contents_mapping[path] = package else: contents_mapping[path] = package # the file only needs to be saved after an update if self._contents_update: self._save_contents_mapping(dir, release, arch) # the update of the mapping only needs to be done once self._contents_update = False if isinstance(file, bytes): file = file.decode() if file[0] == '/': file = file[1:] files = [file.encode()] if file.startswith('usr/lib/x86_64-linux-gnu/'): files.append(file[4:].encode()) elif file.startswith('usr/lib/i386-linux-gnu/'): files.append(file[4:].encode()) elif file.startswith('usr/lib/systemd/'): files.append(file[4:].encode()) elif file.startswith('usr/lib/udev/'): files.append(file[4:].encode()) elif file.startswith('usr/bin/'): files.append(file[4:].encode()) elif file.startswith('usr/sbin/'): files.append(file[4:].encode()) for file in files: try: pkg = contents_mapping[file].decode() return pkg except KeyError: pass return None @classmethod def create_ppa_source_from_origin(klass, origin, distro, release_codename): '''For an origin from a Launchpad PPA create sources.list content. distro is the distribution for which content is being created e.g. ubuntu. release_codename is the codename of the release for which content is being created e.g. trusty. Return a string containing content suitable for writing to a sources.list file, or None if the origin is not a Launchpad PPA. ''' if origin.startswith("LP-PPA-"): components = origin.split("-")[2:] # If the PPA is unnamed, it will not appear in origin information # but is named ppa in Launchpad. try_ppa = True if len(components) == 1: components.append('ppa') try_ppa = False index = 1 while index < len(components): # For an origin we can't tell where the user name ends and the # PPA name starts, so split on each "-" until we find a PPA # that exists. user = str.join('-', components[:index]) ppa_name = str.join('-', components[index:]) try: with closing(urlopen(apport.packaging._ppa_archive_url % {'user': user, 'distro': distro, 'ppaname': ppa_name})) as response: response.read() # in Python 2 an error does not raise an exception if response.getcode() >= 400: raise HTTPError('%u' % response.getcode()) except (URLError, HTTPError): index += 1 if index == len(components): if try_ppa: components.append('ppa') try_ppa = False index = 2 else: user = None continue break if user and ppa_name: ppa_line = 'deb http://ppa.launchpad.net/%s/%s/%s %s main' % \ (user, ppa_name, distro, release_codename) debug_url = 'http://ppa.launchpad.net/%s/%s/%s/dists/%s/main/debug' % \ (user, ppa_name, distro, release_codename) try: with closing(urlopen(debug_url)) as response: response.read() # in Python 2 an error does not raise an exception if response.getcode() >= 400: raise HTTPError('%u' % response.getcode()) add_debug = ' main/debug' except (URLError, HTTPError): add_debug = '' return ppa_line + add_debug + '\ndeb-src' + ppa_line[3:] + '\n' return None @classmethod def _build_apt_sandbox(klass, apt_root, apt_sources, distro_name, release_codename, origins): # pre-create directories, to avoid apt.Cache() printing "creating..." # messages on stdout if not os.path.exists(os.path.join(apt_root, 'var', 'lib', 'apt')): os.makedirs(os.path.join(apt_root, 'var', 'lib', 'apt', 'lists', 'partial')) os.makedirs(os.path.join(apt_root, 'var', 'cache', 'apt', 'archives', 'partial')) os.makedirs(os.path.join(apt_root, 'var', 'lib', 'dpkg')) os.makedirs(os.path.join(apt_root, 'etc', 'apt', 'apt.conf.d')) os.makedirs(os.path.join(apt_root, 'etc', 'apt', 'preferences.d')) # install apt sources list_d = os.path.join(apt_root, 'etc', 'apt', 'sources.list.d') if os.path.exists(list_d): shutil.rmtree(list_d) if os.path.isdir(apt_sources + '.d'): shutil.copytree(apt_sources + '.d', list_d) else: os.makedirs(list_d) with open(apt_sources) as src: with open(os.path.join(apt_root, 'etc', 'apt', 'sources.list'), 'w') as dest: dest.write(src.read()) if origins: source_list_content = '' # map an origin to a Launchpad username and PPA name origin_data = {} for origin in origins: # apport's report format uses unknown for packages w/o an origin if origin == 'unknown': continue origin_path = None if os.path.isdir(apt_sources + '.d'): # check to see if there is a sources.list file for the origin, # if there isn't try using a sources.list file w/o LP-PPA- origin_path = os.path.join(apt_sources + '.d', origin + '.list') if not os.path.exists(origin_path) and 'LP-PPA' in origin: origin_path = os.path.join(apt_sources + '.d', origin.strip('LP-PPA-') + '.list') if not os.path.exists(origin_path): origin_path = None elif not os.path.exists(origin_path): origin_path = None if origin_path: with open(origin_path) as src_ext: source_list_content = src_ext.read() else: source_list_content = klass.create_ppa_source_from_origin(origin, distro_name, release_codename) if source_list_content: with open(os.path.join(apt_root, 'etc', 'apt', 'sources.list.d', origin + '.list'), 'a') as dest: dest.write(source_list_content) for line in source_list_content.splitlines(): if line.startswith('#'): continue if 'ppa.launchpad.net' not in line: continue user = line.split()[1].split('/')[3] ppa = line.split()[1].split('/')[4] origin_data[origin] = (user, ppa) else: apport.warning("Could not find or create source config for %s" % origin) # install apt keyrings; prefer the ones from the config dir, fall back # to system trusted_gpg = os.path.join(os.path.dirname(apt_sources), 'trusted.gpg') if os.path.exists(trusted_gpg): shutil.copy(trusted_gpg, os.path.join(apt_root, 'etc', 'apt')) elif os.path.exists('/etc/apt/trusted.gpg'): shutil.copy('/etc/apt/trusted.gpg', os.path.join(apt_root, 'etc', 'apt')) trusted_d = os.path.join(apt_root, 'etc', 'apt', 'trusted.gpg.d') if os.path.exists(trusted_d): shutil.rmtree(trusted_d) if os.path.exists(trusted_gpg + '.d'): shutil.copytree(trusted_gpg + '.d', trusted_d) elif os.path.exists('/etc/apt/trusted.gpg.d'): shutil.copytree('/etc/apt/trusted.gpg.d', trusted_d) else: os.makedirs(trusted_d) # install apt keyrings for PPAs if origins and source_list_content: for origin, (ppa_user, ppa_name) in origin_data.items(): ppa_archive_url = apport.packaging._ppa_archive_url % \ {'user': quote(ppa_user), 'distro': distro_name, 'ppaname': quote(ppa_name)} ppa_info = apport.packaging.json_request(ppa_archive_url) if not ppa_info: continue try: signing_key_fingerprint = ppa_info['signing_key_fingerprint'] except IndexError: apport.warning("Error: can't find signing_key_fingerprint at %s" % ppa_archive_url) continue argv = ['apt-key', '--keyring', os.path.join(trusted_d, '%s.gpg' % origin), 'adv', '--quiet', '--keyserver', 'keyserver.ubuntu.com', '--recv-key', signing_key_fingerprint] if subprocess.call(argv) != 0: apport.warning('Unable to import key for %s' % ppa_archive_url) pass @classmethod def _deb_version(klass, pkg): '''Return the version of a .deb file''' dpkg = subprocess.Popen(['dpkg-deb', '-f', pkg, 'Version'], stdout=subprocess.PIPE) out = dpkg.communicate(input)[0].decode('UTF-8').strip() assert dpkg.returncode == 0 assert out return out def compare_versions(self, ver1, ver2): '''Compare two package versions. Return -1 for ver < ver2, 0 for ver1 == ver2, and 1 for ver1 > ver2.''' return apt.apt_pkg.version_compare(ver1, ver2) _distro_codename = None def get_distro_codename(self): '''Get "lsb_release -sc", cache the result.''' if self._distro_codename is None: lsb_release = subprocess.Popen(['lsb_release', '-sc'], stdout=subprocess.PIPE) self._distro_codename = lsb_release.communicate()[0].decode('UTF-8').strip() assert lsb_release.returncode == 0 return self._distro_codename _distro_name = None def get_distro_name(self): '''Get osname from /etc/os-release, or if that doesn't exist, 'lsb_release -sir' output and cache the result.''' if self._distro_name is None: self._distro_name = self.get_os_version()[0].lower() if ' ' in self._distro_name: # concatenate distro name e.g. ubuntu-rtm self._distro_name = self._distro_name.replace(' ', '-') return self._distro_name impl = __AptDpkgPackageInfo() �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/bin/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416106601�010621� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/bin/apport-bug�����������������������������������������������������������������������0000775�0000000�0000000�00000004776�14416106601�012645� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh -e # Determine the most appropriate Apport user interface (GTK/KDE/CLI) and file a # bug with it. # # Copyright (C) 2009 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. # Explicitly set the PATH to that of ENV_SUPATH in /etc/login.defs. We need do # this so that confined applications using ubuntu-browsers.d/ubuntu-integration # cannot abuse the environment to escape AppArmor confinement via this script # (LP: #1045986). This can be removed once AppArmor supports environment # filtering (LP: #1045985) PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin if [ "${0%-collect}" != "$0" ]; then prefix=python3 if ! python3 -c 'import apport' 2>/dev/null; then echo "You need to run 'sudo apt-get install python3-apport' for apport-collect to work." >&2 exit 1 fi fi # locate path of a particular program find_program() { for p in /usr/local/bin /usr/bin /usr/local/share/apport /usr/share/apport; do if [ -x $p/$1 ]; then RET="$prefix $p/$1" return fi done unset RET } # determine which UIs are available, and where find_programs() { find_program "apport-cli" CLI="$RET" find_program "apport-gtk" GTK="$RET" find_program "apport-kde" KDE="$RET" } # # main # find_programs export APPORT_INVOKED_AS="$0" # check for X if [ -z "$DISPLAY" -a -z "$WAYLAND_DISPLAY" ]; then if [ -n "$CLI" ] ; then $CLI "$@" else echo "Neither \$DISPLAY nor \$WAYLAND_DISPLAY is set. You need apport-cli to make this program work." >&2 exit 1 fi # do we have a running Gnome/KDE session? elif pgrep -u `id -u` -x gnome-session >/dev/null && \ [ -n "$GTK" ]; then $GTK "$@" elif pgrep -u `id -u` -x ksmserver >/dev/null && \ [ -n "$KDE" ]; then $KDE "$@" # fall back to calling whichever is available elif [ -n "$GTK" ]; then $GTK "$@" elif [ -n "$KDE" ]; then $KDE "$@" elif [ -n "$CLI" ]; then if [ -z "$TERM" ] && [ -x "$XTERM" ]; then "$XTERM" -e "$CLI" "$@" else $CLI "$@" fi else echo "Neither apport-gtk, apport-kde, apport-cli, or whoopsie-upload-all are installed. Install either to make this program work." >&2 exit 1 fi ��apport-2.20.11/bin/apport-cli�����������������������������������������������������������������������0000775�0000000�0000000�00000032060�14416106601�012622� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 '''Command line Apport user interface.''' # Copyright (C) 2007 - 2009 Canonical Ltd. # Author: Michael Hofmann <mh21@piware.de> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. # Web browser support: # w3m, lynx: do not work # elinks: works from __future__ import unicode_literals import os.path, os, sys, subprocess, re, errno import termios, tempfile from apport import unicode_gettext as _ import apport.ui class CLIDialog: '''Command line dialog wrapper.''' def __init__(self, heading, text): self.heading = '\n*** ' + heading + '\n' self.text = text self.keys = [] self.buttons = [] self.visible = False def raw_input_char(self, prompt, multi_char=False): '''raw_input, but read a single character unless multi_char is True. @param: prompt: the text presented to the user to solict a response. @param: multi_char: Boolean True if we need to read until <enter>. ''' sys.stdout.write(prompt) sys.stdout.write(' ') sys.stdout.flush() file = sys.stdin.fileno() saved_attributes = termios.tcgetattr(file) attributes = termios.tcgetattr(file) attributes[3] = attributes[3] & ~(termios.ICANON) attributes[6][termios.VMIN] = 1 attributes[6][termios.VTIME] = 0 termios.tcsetattr(file, termios.TCSANOW, attributes) try: if multi_char: response = str(sys.stdin.readline()).strip() else: response = str(sys.stdin.read(1)) finally: termios.tcsetattr(file, termios.TCSANOW, saved_attributes) sys.stdout.write('\n') return response def show(self): self.visible = True print(self.heading) if self.text: print(self.text) def run(self, prompt=None): if not self.visible: self.show() sys.stdout.write('\n') try: # Only one button if len(self.keys) <= 1: self.raw_input_char(_('Press any key to continue...')) return 0 # Multiple choices while True: if prompt is not None: print(prompt) else: print(_('What would you like to do? Your options are:')) for index, button in enumerate(self.buttons): print(' %s: %s' % (self.keys[index], button)) if len(self.keys) <= 10: # A 10 option prompt would can still be a single character # response because the 10 options listed will be 1-9 and C. # Therefore there are 10 unique responses which can be # given. multi_char = False else: multi_char = True response = self.raw_input_char( _('Please choose (%s):') % ('/'.join(self.keys)), multi_char) try: return self.keys.index(response.upper()) + 1 except ValueError: pass except KeyboardInterrupt: sys.stdout.write('\n') sys.exit(1) def addbutton(self, button, hotkey=None): if hotkey: self.keys.append(hotkey) self.buttons.append(button) else: self.keys.append(re.search('&(.)', button).group(1).upper()) self.buttons.append(re.sub('&', '', button)) return len(self.keys) class CLIProgressDialog(CLIDialog): '''Command line progress dialog wrapper.''' def __init__(self, heading, text): CLIDialog.__init__(self, heading, text) self.progresscount = 0 def set(self, progress=None): self.progresscount = (self.progresscount + 1) % 5 if self.progresscount: return if progress is not None: sys.stdout.write('\r%u%%' % (progress * 100)) else: sys.stdout.write('.') sys.stdout.flush() class CLIUserInterface(apport.ui.UserInterface): '''Command line Apport user interface''' def __init__(self): apport.ui.UserInterface.__init__(self) self.in_update_view = False def _get_details(self): '''Build report string for display.''' details = '' max_show = 1000000 for key in sorted(self.report): # ignore internal keys if key.startswith('_'): continue details += '== %s =================================\n' % key # string value keylen = len(self.report[key]) if not hasattr(self.report[key], 'gzipvalue') and \ hasattr(self.report[key], 'isspace') and \ not self.report._is_binary(self.report[key]) and \ keylen < max_show: s = self.report[key] elif keylen >= max_show: s = _('(%i bytes)') % keylen else: s = _('(binary data)') if isinstance(s, bytes): s = s.decode('UTF-8', errors='ignore') details += s details += '\n\n' return details def ui_update_view(self): self.in_update_view = True report = self._get_details() try: apport.ui.run_as_real_user( ["/usr/bin/sensible-pager"], input=report.encode("UTF-8") ) except IOError as e: # ignore broken pipe (premature quit) if e.errno == errno.EPIPE: pass else: raise self.in_update_view = False # # ui_* implementation of abstract UserInterface classes # def ui_present_report_details(self, allowed_to_report=True, modal_for=None): dialog = CLIDialog(_('Send problem report to the developers?'), _('After the problem report has been sent, please fill out the form in the\n' 'automatically opened web browser.')) complete = dialog.addbutton(_('&Send report (%s)') % self.format_filesize(self.get_complete_size())) if self.can_examine_locally(): examine = dialog.addbutton(_('&Examine locally')) else: examine = None view = dialog.addbutton(_('&View report')) save = dialog.addbutton(_('&Keep report file for sending later or copying to somewhere else')) ignore = dialog.addbutton(_('Cancel and &ignore future crashes of this program version')) dialog.addbutton(_('&Cancel')) while True: response = dialog.run() return_value = {'restart': False, 'blacklist': False, 'remember': False, 'report': False, 'examine': False} if response == examine: return_value['examine'] = True return return_value elif response == complete: return_value['report'] = True elif response == ignore: return_value['blacklist'] = True elif response == view: self.collect_info() self.ui_update_view() continue elif response == save: # we do not already have a report file if we report a bug if not self.report_file: prefix = 'apport.' if 'Package' in self.report: prefix += self.report['Package'].split()[0] + '.' (fd, self.report_file) = tempfile.mkstemp(prefix=prefix, suffix='.apport') with os.fdopen(fd, 'wb') as f: self.report.write(f) print(_('Problem report file:') + ' ' + self.report_file) return return_value def ui_info_message(self, title, text): dialog = CLIDialog(title, text) dialog.addbutton(_('&Confirm')) dialog.run() def ui_error_message(self, title, text): dialog = CLIDialog(_('Error: %s') % title, text) dialog.addbutton(_('&Confirm')) dialog.run() def ui_start_info_collection_progress(self): self.progress = CLIProgressDialog( _('Collecting problem information'), _('The collected information can be sent to the developers to improve the\n' 'application. This might take a few minutes.')) self.progress.show() def ui_pulse_info_collection_progress(self): self.progress.set() def ui_stop_info_collection_progress(self): sys.stdout.write('\n') def ui_start_upload_progress(self): self.progress = CLIProgressDialog( _('Uploading problem information'), _('The collected information is being sent to the bug tracking system.\n' 'This might take a few minutes.')) self.progress.show() def ui_set_upload_progress(self, progress): self.progress.set(progress) def ui_stop_upload_progress(self): sys.stdout.write('\n') def ui_question_yesno(self, text): '''Show a yes/no question. Return True if the user selected "Yes", False if selected "No" or "None" on cancel/dialog closing. ''' dialog = CLIDialog(text, None) r_yes = dialog.addbutton('&Yes') r_no = dialog.addbutton('&No') r_cancel = dialog.addbutton(_('&Cancel')) result = dialog.run() if result == r_yes: return True if result == r_no: return False assert result == r_cancel return None def ui_question_choice(self, text, options, multiple): '''Show an question with predefined choices. options is a list of strings to present. If multiple is True, they should be check boxes, if multiple is False they should be radio buttons. Return list of selected option indexes, or None if the user cancelled. If multiple == False, the list will always have one element. ''' result = [] dialog = CLIDialog(text, None) if multiple: while True: dialog = CLIDialog(text, None) index = 0 choice_index_map = {} for option in options: if index not in result: choice_index_map[dialog.addbutton(option, str(index + 1))] = index index += 1 done = dialog.addbutton(_('&Done')) cancel = dialog.addbutton(_('&Cancel')) if result: cur = ', '.join([str(r + 1) for r in result]) else: cur = _('none') response = dialog.run(_('Selected: %s. Multiple choices:') % cur) if response == cancel: return None if response == done: break result.append(choice_index_map[response]) else: # single choice (radio button) dialog = CLIDialog(text, None) index = 1 for option in options: dialog.addbutton(option, str(index)) index += 1 cancel = dialog.addbutton(_('&Cancel')) response = dialog.run(_('Choices:')) if response == cancel: return None result.append(response - 1) return result def ui_question_file(self, text): '''Show a file selector dialog. Return path if the user selected a file, or None if cancelled. ''' print('\n*** ' + text) while True: sys.stdout.write(_('Path to file (Enter to cancel):')) sys.stdout.write(' ') f = sys.stdin.readline().strip() if not f: return None if not os.path.exists(f): print(_('File does not exist.')) elif os.path.isdir(f): print(_('This is a directory.')) else: return f def open_url(self, url): text = '%s\n\n %s\n\n%s' % ( _('To continue, you must visit the following URL:'), url, _('You can launch a browser now, or copy this URL into a browser on another computer.')) answer = self.ui_question_choice(text, [_('Launch a browser now')], False) if answer == [0]: apport.ui.UserInterface.open_url(self, url) def ui_run_terminal(self, command): # we are already running in a terminal, so this works by definition if not command: return True subprocess.call(command, shell=True) if __name__ == '__main__': app = CLIUserInterface() if not app.run_argv(): print(_('No pending crash reports. Try --help for more information.')) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/bin/apport-collect�������������������������������������������������������������������0000777�0000000�0000000�00000000000�13562354544�015506� 2apport-bug������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/bin/apport-retrace�������������������������������������������������������������������0000775�0000000�0000000�00000045150�14416106601�013504� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # Use the coredump in a crash report to regenerate the stack traces. This is # helpful to get a trace with debug symbols. # # Copyright (c) 2006 - 2011 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import sys, os, os.path, subprocess, argparse, shutil, tempfile, re, zlib import tty, termios, gettext import apport, apport.fileutils, apport.sandboxutils from apport.crashdb import get_crashdb from apport import unicode_gettext as _ # # functions # log_timestamps = False def parse_args(): '''Parse command line options and return args namespace.''' argparser = argparse.ArgumentParser() actions = argparser.add_mutually_exclusive_group() actions.add_argument('-s', '--stdout', action='store_true', help=_('Do not put the new traces into the report, but write them to stdout.')) actions.add_argument('-g', '--gdb', action='store_true', help=_('Start an interactive gdb session with the report\'s core dump (-o ignored; does not rewrite report)')) actions.add_argument('-o', '--output', metavar='FILE', help=_('Write modified report to given file instead of changing the original report')) argparser.add_argument('-c', '--remove-core', action='store_true', help=_('Remove the core dump from the report after stack trace regeneration')) argparser.add_argument('-r', '--core-file', metavar='CORE', help=_('Override report\'s CoreFile')) argparser.add_argument('-x', '--executable', metavar='EXE', help=_('Override report\'s ExecutablePath')) argparser.add_argument('-m', '--procmaps', metavar='MAPS', help=_('Override report\'s ProcMaps')) argparser.add_argument('-R', '--rebuild-package-info', action='store_true', help=_('Rebuild report\'s Package information')) argparser.add_argument('-S', '--sandbox', metavar='CONFIG_DIR', help=_('Build a temporary sandbox and download/install the necessary packages and debug symbols in there; without this option it assumes that the necessary packages and debug symbols are already installed in the system. The argument points to the packaging system configuration base directory; if you specify "system", it will use the system configuration files, but will then only be able to retrace crashes that happened on the currently running release.')) argparser.add_argument('--gdb-sandbox', action='store_true', help=_('Build another temporary sandbox for installing gdb and its dependencies using the same release as the report rather than whatever version of gdb you have installed.')) argparser.add_argument('-v', '--verbose', action='store_true', help=_('Report download/install progress when installing packages into sandbox')) argparser.add_argument('--timestamps', action='store_true', help=_('Prepend timestamps to log messages, for batch operation')) argparser.add_argument('--dynamic-origins', action='store_true', help=_('Create and use third-party repositories from origins specified in reports')) argparser.add_argument('-C', '--cache', metavar='DIR', help=_('Cache directory for packages downloaded in the sandbox')) argparser.add_argument('--sandbox-dir', metavar='DIR', help=_('Directory for unpacked packages. Future runs will assume that any already downloaded package is also extracted to this sandbox.')) argparser.add_argument('-p', '--extra-package', action='append', default=[], help=_('Install an extra package into the sandbox (can be specified multiple times)')) argparser.add_argument('--auth', help=_('Path to a file with the crash database authentication information. This is used when specifying a crash ID to upload the retraced stack traces (only if neither -g, -o, nor -s are specified)')) argparser.add_argument('--confirm', action='store_true', help=_('Display retraced stack traces and ask for confirmation before sending them to the crash database.')) argparser.add_argument('--duplicate-db', metavar='PATH', help=_('Path to the duplicate sqlite database (default: no duplicate checking)')) argparser.add_argument('--no-stacktrace-source', action='store_false', dest='stacktrace_source', help=_('Do not add StacktraceSource to the report.')) argparser.add_argument('report', metavar='some.crash|NNNN', help='apport .crash file or the crash ID to process') args = argparser.parse_args() # catch invalid usage of -C without -S (cache is only used when making a # sandbox) if args.cache and not args.sandbox: argparser.error(_('You cannot use -C without -S. Stopping.')) if args.timestamps: global log_timestamps log_timestamps = True return args def getch(): '''Read a single character from stdin.''' fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) return ch def confirm_traces(report): '''Display the retraced stack traces and ask the user whether or not to upload them to the crash database. Return True if the user agrees.''' print_traces(report) ch = None while ch not in ['y', 'n']: # translators: don't translate y/n, apport currently only checks for "y" print(_('OK to send these as attachments? [y/n]')) ch = getch().lower() return ch == 'y' def find_file_dir(name, dir, limit=None): '''Return a path list of all files with given name which are in or below dir. If limit is not None, the search will be stopped after finding the given number of hits.''' result = [] for root, dirs, files in os.walk(dir): if name in files: result.append(os.path.join(root, name)) if limit and len(result) >= limit: break return result def get_code(srcdir, filename, line, context=5): '''Find the given filename in the srcdir directory and return the code lines around the given line number.''' files = find_file_dir(filename, srcdir, 1) if not files: return ' [Error: %s was not found in source tree]\n' % filename result = '' lineno = 0 # make enough room for all line numbers format = ' %%%ii: %%s' % len(str(line + context)) with open(files[0], 'rb') as f: for ln in f: ln = ln.decode('UTF8', errors='replace') lineno += 1 if lineno >= line - context and lineno <= line + context: result += format % (lineno, ln) return result def gen_source_stacktrace(report, sandbox): '''Generate StacktraceSource. This is a version of Stacktrace with the surrounding code lines (where available) and with local variables removed. ''' if 'Stacktrace' not in report or 'SourcePackage' not in report: return workdir = tempfile.mkdtemp() try: try: version = report['Package'].split()[1] except (IndexError, KeyError): version = None srcdir = apport.packaging.get_source_tree(report['SourcePackage'], workdir, version, sandbox=sandbox) if not srcdir: return src_frame = re.compile(r'^#\d+\s.* at (.*):(\d+)$') other_frame = re.compile(r'^#\d+') result = '' for frame in report['Stacktrace'].splitlines(): m = src_frame.match(frame) if m: result += frame + '\n' + get_code(srcdir, os.path.basename(m.group(1)), int(m.group(2))) else: m = other_frame.search(frame) if m: result += frame + '\n' report['StacktraceSource'] = result finally: shutil.rmtree(workdir) pass def print_traces(report): '''Print stack traces from given report''' print('--- stack trace ---') print(report['Stacktrace']) if 'ThreadedStacktrace' in report: print('--- thread stack trace ---') print(report['ThreadStacktrace']) if 'StacktraceSource' in report: print('--- source code stack trace ---') print(report['StacktraceSource']) # # main # apport.memdbg('start') gettext.textdomain('apport') options = parse_args() crashdb = get_crashdb(options.auth) apport.memdbg('got crash DB') # load the report if os.path.exists(options.report): try: report = apport.Report() with open(options.report, 'rb') as f: report.load(f, binary='compressed') apport.memdbg('loaded report from file') except (MemoryError, TypeError, ValueError, IOError, zlib.error) as e: apport.fatal('Cannot open report file: %s', str(e)) elif options.report.isdigit(): # crash ID try: report = crashdb.download(int(options.report)) apport.memdbg('downloaded report from crash DB') except AssertionError as e: if 'apport format data' in str(e): apport.error('Broken report: %s', str(e)) sys.exit(0) else: raise except (MemoryError, TypeError, ValueError, IOError, SystemError, OverflowError, zlib.error) as e: # if we process the report automatically, and it is invalid, close it with # an informative message and exit cleanly to not break crash-digger if options.auth and not options.output and not options.stdout: apport.error('Broken report: %s, closing as invalid', str(e)) crashdb.mark_retrace_failed(options.report, '''Thank you for your report! However, processing it in order to get sufficient information for the developers failed, since the report is ill-formed. Perhaps the report data got modified? %s If you encounter the crash again, please file a new report. Thank you for your understanding, and sorry for the inconvenience! ''' % str(e)) sys.exit(0) else: raise crashid = options.report options.report = None else: apport.fatal('"%s" is neither an existing report file nor a crash ID', options.report) if options.core_file: report['CoreDump'] = (os.path.abspath(options.core_file),) if options.executable: report['ExecutablePath'] = options.executable if options.procmaps: with open(options.procmaps, 'r') as f: report['ProcMaps'] = f.read() if options.rebuild_package_info and 'ExecutablePath' in report: report.add_package_info() apport.memdbg('processed extra options from command line') # sanity checks required_fields = set(['CoreDump', 'ExecutablePath', 'Package', 'DistroRelease', 'Architecture']) if report['ProblemType'] == 'KernelCrash': if not set(['Package', 'VmCore']).issubset(set(report.keys())): apport.error('report file does not contain the required fields') sys.exit(0) apport.error('KernelCrash processing not implemented yet') sys.exit(0) elif not required_fields.issubset(set(report.keys())): missing_fields = [] for required_field in required_fields: if required_field not in set(report.keys()): missing_fields.append(required_field) apport.error('report file does not contain one of the required fields: ' + ' '.join(missing_fields)) sys.exit(0) apport.memdbg('sanity checks passed') if options.gdb_sandbox: system_arch = apport.packaging.get_system_architecture() if system_arch != 'amd64': apport.error('gdb sandboxes are only implemented for amd64 hosts') sys.exit(0) if options.sandbox: if options.sandbox_dir: sandbox_dir = '%s/%s/%s/report-sandbox/' % \ (options.sandbox_dir, report['DistroRelease'], report['Architecture']) else: sandbox_dir = None if options.gdb_sandbox: if report['Architecture'] == system_arch: options.extra_package.append('gdb') sandbox, cache, outdated_msg = apport.sandboxutils.make_sandbox( report, options.sandbox, options.cache, sandbox_dir, options.extra_package, options.verbose, log_timestamps, options.dynamic_origins) else: sandbox = None cache = None outdated_msg = None if options.gdb_sandbox: if report['Architecture'] == system_arch: if sandbox: # gdb was installed in the sandbox gdb_sandbox = sandbox gdb_cache = cache else: gdb_packages = ['gdb', 'gdb-multiarch'] fake_report = apport.Report() # if the report has no Architecture the host one will be used fake_report['DistroRelease'] = report['DistroRelease'] # use a empty ProcMaps so needed_runtimes packages won't want ExecPath fake_report['ProcMaps'] = '\n\n' if options.sandbox_dir: gdb_sandbox_dir = '%s/%s/%s/gdb-sandbox/' % \ (options.sandbox_dir, report['DistroRelease'], system_arch) else: gdb_sandbox_dir = None gdb_sandbox, gdb_cache, gdb_outdated_msg = \ apport.sandboxutils.make_sandbox(fake_report, options.sandbox, options.cache, gdb_sandbox_dir, gdb_packages, options.verbose, log_timestamps, options.dynamic_origins) else: gdb_sandbox = None gdb_cache = None gdb_outdated_msg = None # interactive gdb session if options.gdb: gdb_cmd, environ = report.gdb_command(sandbox, gdb_sandbox) if options.verbose: # build a shell-style command cmd = '' for w in gdb_cmd: if cmd: cmd += ' ' if ' ' in w: cmd += "'" + w + "'" else: cmd += w apport.log('Calling gdb command: ' + cmd, log_timestamps) apport.memdbg('before calling gdb') subprocess.call(gdb_cmd, env=environ) else: # regenerate gdb info apport.memdbg('before collecting gdb info') try: report.add_gdb_info(sandbox, gdb_sandbox) except IOError as e: if not options.auth: apport.fatal(str(e)) if not options.confirm or confirm_traces(report): invalid_msg = '''Thank you for your report! However, processing it in order to get sufficient information for the developers failed as the report has a core dump which is invalid. The corruption may have happened on the system which the crash occurred or during transit. Thank you for your understanding, and sorry for the inconvenience! ''' crashdb.mark_retrace_failed(crashid, invalid_msg) apport.fatal(str(e)) if options.sandbox == 'system': apt_root = os.path.join(cache, 'system', 'apt') elif options.sandbox: apt_root = os.path.join(cache, report['DistroRelease'], 'apt') else: apt_root = None if options.stacktrace_source: gen_source_stacktrace(report, apt_root) report.add_kernel_crash_info() modified = False apport.memdbg('information collection done') if options.remove_core: del report['CoreDump'] modified = True if options.stdout: print_traces(report) else: if not options.gdb: modified = True if modified: if not options.report and not options.output: if not options.auth: apport.fatal('You need to specify --auth for uploading retraced results back to the crash database.') if not options.confirm or confirm_traces(report): # check for duplicates update_bug = True if options.duplicate_db: crashdb.init_duplicate_db(options.duplicate_db) res = crashdb.check_duplicate(int(crashid), report) if res: if res[1] is None: apport.log('Report is a duplicate of #%i (not fixed yet)' % res[0], log_timestamps) elif res[1] == '': apport.log('Report is a duplicate of #%i (fixed in latest version)' % res[0], log_timestamps) else: apport.log('Report is a duplicate of #%i (fixed in version %s)' % res, log_timestamps) update_bug = False else: apport.log('Duplicate check negative', log_timestamps) if update_bug: if 'Stacktrace' in report: crashdb.update_traces(crashid, report) apport.log('New attachments uploaded to crash database LP: #' + crashid, log_timestamps) else: # this happens when gdb crashes apport.log('No stack trace, invalid report', log_timestamps) if not report.has_useful_stacktrace(): if outdated_msg: invalid_msg = '''Thank you for your report! However, processing it in order to get sufficient information for the developers failed (it does not generate a useful symbolic stack trace). This might be caused by some outdated packages which were installed on your system at the time of the report: %s Please upgrade your system to the latest package versions. If you still encounter the crash, please file a new report. Thank you for your understanding, and sorry for the inconvenience! ''' % outdated_msg apport.log('No crash signature and outdated packages, invalidating report', log_timestamps) crashdb.mark_retrace_failed(crashid, invalid_msg) else: apport.log('Report has no crash signature, so retrace is flawed', log_timestamps) crashdb.mark_retrace_failed(crashid) else: if options.output is None: out = open(options.report, 'wb') elif options.output == '-': if sys.version[0] < '3': out = sys.stdout else: out = sys.stdout.detach() else: out = open(options.output, 'wb') report.write(out) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/bin/apport-unpack��������������������������������������������������������������������0000775�0000000�0000000�00000004026�14416106601�013335� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # Extract the fields of a problem report into separate files into a new or # empty directory. # # Copyright (c) 2006 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import sys, os, os.path, gettext, gzip from apport import unicode_gettext as _, fatal import problem_report def help(): print(_('Usage: %s <report> <target directory>') % sys.argv[0]) gettext.textdomain('apport') if len(sys.argv) >= 2 and sys.argv[1] == '--help': help() sys.exit(0) if len(sys.argv) != 3: help() sys.exit(1) report = sys.argv[1] dir = sys.argv[2] # ensure that the directory does not yet exist or is empty try: if os.path.isdir(dir): if os.listdir(dir): fatal(_('Destination directory exists and is not empty.')) else: os.mkdir(dir) except OSError as e: fatal(str(e)) bin_keys = [] pr = problem_report.ProblemReport() if report == '-': pr.load(sys.stdin, binary=False) else: try: if report.endswith('.gz'): with gzip.open(report, 'rb') as f: pr.load(f, binary=False) else: with open(report, 'rb') as f: pr.load(f, binary=False) except IOError as e: fatal(str(e)) for k in pr: if pr[k] is None: bin_keys.append(k) continue with open(os.path.join(dir, k), 'wb') as f: if type(pr[k]) == str: f.write(pr[k].encode('UTF-8')) else: f.write(pr[k]) try: if report.endswith('.gz'): with gzip.open(report, 'rb') as f: pr.extract_keys(f, bin_keys, dir) else: with open(report, 'rb') as f: pr.extract_keys(f, bin_keys, dir) except IOError as e: fatal(str(e)) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/bin/apport-valgrind������������������������������������������������������������������0000775�0000000�0000000�00000012541�14416105132�013661� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # Use the coredump in a crash report to regenerate the stack traces. This is # helpful to get a trace with debug symbols. # # Copyright (c) 2006 - 2013 Canonical Ltd. # Authors: Alex Chiang <alex.chiang@canonical.com> # Kyle Nitzsche <kyle.nitzsche@canonical.com> # Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import sys import os import os.path import subprocess import argparse import gettext import apport import apport.fileutils import apport.sandboxutils from apport import unicode_gettext as _ # # functions # def parse_options(): '''Parse command line options and return options.''' description = _("See man page for details.") parser = argparse.ArgumentParser(description=description) parser.add_argument( '-l', '--log', metavar='LOGFILE', default='valgrind.log', help=_('specify the log file name produced by valgrind')) parser.add_argument( '--sandbox-dir', metavar='SDIR', help=_('reuse a previously created sandbox dir (SDIR) or, if it does ' 'not exist, create it')) parser.add_argument( '--no-sandbox', action='store_true', help=_('do not create or reuse a sandbox directory for additional ' 'debug symbols but rely only on installed debug symbols.')) parser.add_argument( '-C', '--cache', metavar='DIR', help=_('reuse a previously created cache dir (CDIR) or, if it does ' 'not exist, create it')) parser.add_argument( '-v', '--verbose', action='store_true', help=_('report download/install progress when installing packages ' 'into sandbox')) parser.add_argument( 'exe', metavar='EXECUTABLE', help=_('the executable that is run under valgrind\'s memcheck tool ' ' for memory leak detection')) parser.add_argument( '-p', '--extra-package', metavar='PKG', action='append', default=[], help=_('Install an extra package into the sandbox (can be specified ' 'multiple times)')) opts = parser.parse_args() return opts def _exit_on_interrupt(): sys.exit(1) # # main # options = parse_options() try: apport.memdbg('start') apport.memdbg('Executable: ' + options.exe) apport.memdbg('Command arguments: ' + str(options)) gettext.textdomain('apport') # get and verify path to executable exepath = subprocess.Popen( ['which', options.exe], stdout=subprocess.PIPE).communicate()[0] exepath = bytes.decode(exepath) exepath = exepath.rstrip('\n') exepath = os.path.abspath(exepath) if not exepath: sys.stderr.write(_('Error: %s is not an executable. Stopping.') % options.exe) sys.stderr.write('\n') sys.exit(1) except (KeyboardInterrupt, SystemExit): sys.stderr.write("\nInterrupted during initialization\n") _exit_on_interrupt() try: if (not options.no_sandbox): # create report unless in no-sandbox mode report = apport.Report() report['ExecutablePath'] = exepath report.add_os_info() report.add_package_info() apport.memdbg('\nCreated report') except (KeyboardInterrupt, SystemExit): sys.stderr.write("\nInterrupted during report creation\n") _exit_on_interrupt() apport.memdbg('About to handle sandbox') cache = None try: # make the sandbox unless not wanted if not options.no_sandbox: sandbox, cache, outdated_msg = apport.sandboxutils.make_sandbox( report, "system", options.cache, options.sandbox_dir, options.extra_package, options.verbose) except (KeyboardInterrupt, SystemExit): sys.stderr.write("\nInterrupted while creating sandbox\n") _exit_on_interrupt() apport.memdbg('About to get path to sandbox') debugrootdir = None try: if not options.no_sandbox: # get path to sandbox if sandbox: # sandbox is only defined when an auto created dir in tmp is in use debugrootdir = os.path.abspath(sandbox) elif options.sandbox_dir: # this is used when --sandbox-dir is passed as arg debugrootdir = os.path.abspath(options.sandbox_dir) # display sandbox and cache dirs, if any if debugrootdir: print('Sandbox directory:', debugrootdir) if cache: print('Cache directory:', cache) # prep to run valgrind argv = ['valgrind'] argv += ['-v', '--tool=memcheck', '--leak-check=full', '--num-callers=40'] argv += ['--log-file=%s' % options.log] argv += ['--track-origins=yes'] if (not options.no_sandbox): argv += ['--extra-debuginfo-path=%s/usr/lib/debug/' % debugrootdir] argv += [exepath] apport.memdbg('before calling valgrind') except (KeyboardInterrupt, SystemExit): sys.stderr.write("\nInterrupted while preparing to create sandbox\n") _exit_on_interrupt() try: subprocess.call(argv) except (KeyboardInterrupt, SystemExit): sys.stderr.write("\nInterrupted while running valgrind\n") _exit_on_interrupt() apport.memdbg('information collection done') ���������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/bin/crash-digger���������������������������������������������������������������������0000775�0000000�0000000�00000021635�14416105132�013113� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # Copyright (C) 2007 - 2011 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os, optparse, subprocess, sys, zlib, errno, shutil import apport from apport.crashdb import get_crashdb # # classes # class CrashDigger: def __init__(self, config_dir, auth_file, cache_dir, sandbox_dir, apport_retrace, verbose=False, dup_db=None, dupcheck_mode=False, publish_dir=None, crash_db=None): '''Initialize pools.''' self.retrace_pool = set() self.dupcheck_pool = set() self.config_dir = config_dir self.cache_dir = cache_dir self.sandbox_dir = sandbox_dir self.verbose = verbose self.auth_file = auth_file self.dup_db = dup_db self.dupcheck_mode = dupcheck_mode try: self.crashdb = get_crashdb(auth_file, name=crash_db) except KeyError: apport.error('Crash database %s does not exist', crash_db) sys.exit(1) self.lp = False try: if self.crashdb.launchpad: self.lp = True except AttributeError: pass self.apport_retrace = apport_retrace self.publish_dir = publish_dir if config_dir: self.releases = os.listdir(config_dir) self.releases.sort() apport.log('Available releases: %s' % str(self.releases), True) else: self.releases = None if self.dup_db: self.crashdb.init_duplicate_db(self.dup_db) # this verified DB integrity; make a backup now shutil.copy2(self.dup_db, self.dup_db + '.backup') def fill_pool(self): '''Query crash db for new IDs to process.''' if self.dupcheck_mode: self.dupcheck_pool.update(self.crashdb.get_dup_unchecked()) apport.log('fill_pool: dup check pool now: %s' % str(self.dupcheck_pool), True) else: self.retrace_pool.update(self.crashdb.get_unretraced()) apport.log('fill_pool: retrace pool now: %s' % str(self.retrace_pool), True) def retrace_next(self): '''Grab an ID from the retrace pool and retrace it.''' id = self.retrace_pool.pop() apport.log('retracing %s#%i (left in pool: %i)' % ("LP: " if self.lp else "", id, len(self.retrace_pool)), True) try: rel = self.crashdb.get_distro_release(id) except ValueError: apport.log('could not determine release -- no DistroRelease field?', True) self.crashdb.mark_retraced(id) return if rel not in self.releases: apport.log('crash is release %s which does not have a config available, skipping' % rel, True) return argv = [self.apport_retrace, '-S', self.config_dir, '--auth', self.auth_file, '--timestamps'] if self.cache_dir: argv += ['--cache', self.cache_dir] if self.sandbox_dir: argv += ['--sandbox-dir', self.sandbox_dir] if self.dup_db: argv += ['--duplicate-db', self.dup_db] if self.verbose: argv.append('-v') argv.append(str(id)) result = subprocess.call(argv, stdout=sys.stdout, stderr=subprocess.STDOUT) if result != 0: apport.log('retracing %s#%i failed with status: %i' % ("LP: " if self.lp else "", id, result), True) if result == 99: self.retrace_pool = set() apport.log('transient error reported; halting', True) return self.crashdb.mark_retraced(id) def dupcheck_next(self): '''Grab an ID from the dupcheck pool and process it.''' id = self.dupcheck_pool.pop() apport.log('checking %s#%i for duplicate (left in pool: %i)' % ("LP: " if self.lp else "", id, len(self.dupcheck_pool)), True) try: report = self.crashdb.download(id) except (MemoryError, TypeError, ValueError, IOError, AssertionError, zlib.error) as e: if str(e) == "bug description must contain standard apport format data": apport.log('Cannot download report: ' + str(e), True) apport.error('Cannot download report %i: %s', id, str(e)) return apport.log('Cannot download report: ' + str(e), True) apport.error('Cannot download report %i: %s', id, str(e)) return res = self.crashdb.check_duplicate(id, report) if res: if res[1] is None: apport.log('Report is a duplicate of #%i (not fixed yet)' % res[0], True) elif res[1] == '': apport.log('Report is a duplicate of #%i (fixed in latest version)' % res[0], True) else: apport.log('Report is a duplicate of #%i (fixed in version %s)' % res, True) else: apport.log('Duplicate check negative', True) def run(self): '''Process the work pools until they are empty.''' self.fill_pool() while self.dupcheck_pool: self.dupcheck_next() while self.retrace_pool: self.retrace_next() if self.publish_dir: self.crashdb.duplicate_db_publish(self.publish_dir) # # functions # def parse_options(): '''Parse command line options and return (options, args) tuple.''' optparser = optparse.OptionParser('%prog [options]') optparser.add_option('-c', '--config-dir', metavar='DIR', help='Packaging system configuration base directory.') optparser.add_option('--sandbox-dir', metavar='DIR', help='Directory for unpacked packages. Future runs will assume that any already downloaded package is also extracted to this sandbox.') optparser.add_option('-C', '--cache', metavar='DIR', help='Cache directory for packages downloaded in the sandbox') optparser.add_option('-a', '--auth', dest='auth_file', help='Path to a file with the crash database authentication information.') optparser.add_option('-l', '--lock', dest='lockfile', help='Lock file; will be created and removed on successful exit, and ' 'program immediately aborts if it already exists') optparser.add_option('-d', '--duplicate-db', dest='dup_db', metavar='PATH', help='Path to the duplicate sqlite database (default: disabled)') optparser.add_option('--crash-db', metavar='NAME', help='Use a different crash database than the "default" in /etc/apport/crashdb.conf') optparser.add_option('-D', '--dupcheck', dest='dupcheck_mode', default=False, action='store_true', help='Only check duplicates for architecture independent crashes (like Python exceptions)') optparser.add_option('-v', '--verbose', action='store_true', default=False, help='Verbose operation (also passed to apport-retrace)') optparser.add_option('--apport-retrace', metavar='PATH', help='Path to apport-retrace script (default: directory of crash-digger or $PATH)') optparser.add_option('--publish-db', metavar='DIR', help='After processing all reports, publish duplicate database to given directory') (opts, args) = optparser.parse_args() if not opts.config_dir and not opts.dupcheck_mode: apport.fatal('Error: --config-dir or --dupcheck needs to be given') if not opts.auth_file: apport.fatal('Error: -a/--auth needs to be given') return (opts, args) # # main # opts, args = parse_options() # support running from tree, then fall back to $PATH if not opts.apport_retrace: opts.apport_retrace = os.path.join(os.path.dirname(sys.argv[0]), 'apport-retrace') if not os.access(opts.apport_retrace, os.X_OK): opts.apport_retrace = 'apport-retrace' if opts.lockfile: try: f = os.open(opts.lockfile, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o666) os.write(f, ("%u\n" % os.getpid()).encode()) os.close(f) except OSError as e: if e.errno == errno.EEXIST: sys.exit(0) else: raise try: CrashDigger(opts.config_dir, opts.auth_file, opts.cache, opts.sandbox_dir, opts.apport_retrace, opts.verbose, opts.dup_db, opts.dupcheck_mode, opts.publish_db, opts.crash_db).run() except SystemExit as exit: if exit.code == 99: pass # fall through lock cleanup else: raise if opts.lockfile: os.unlink(opts.lockfile) ���������������������������������������������������������������������������������������������������apport-2.20.11/bin/dupdb-admin����������������������������������������������������������������������0000775�0000000�0000000�00000005451�14416105132�012736� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # CLI for maintaining the duplicate database # # Copyright (c) 2007 - 2012 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import optparse, sys, os.path import apport.crashdb_impl.memory import apport def command_dump(crashdb, opts, args): '''Print out all entries.''' for (sig, (id, version, lastchange)) in crashdb._duplicate_db_dump(True).items(): sys.stdout.write('%7i: %s ' % (id, sig)) if version == '': sys.stdout.write('[fixed] ') elif version: sys.stdout.write('[fixed in: %s] ' % version) else: sys.stdout.write('[open] ') print('last change: %s' % str(lastchange)) def command_changeid(crashdb, opts, args): '''Change the master ID of a crash.''' if len(args) != 2: apport.fatal('changeid needs exactly two arguments (use --help for a short help)') (oldid, newid) = args crashdb.duplicate_db_change_master_id(oldid, newid) def command_removeid(crashdb, opts, args): '''Remove a crash.''' if len(args) != 1: apport.fatal('removeid needs exactly one argument (use --help for a short help)') crashdb.duplicate_db_remove(args[0]) def command_publish(crashdb, opts, args): '''Publish crash database to a directory.''' if len(args) != 1: apport.fatal('publish needs exactly one argument (use --help for a short help)') crashdb.duplicate_db_publish(args[0]) # # main # # parse command line options optparser = optparse.OptionParser('''%prog [options] dump %prog [options] changeid <old ID> <new ID> %prog [options] removeid <ID> %prog [options] publish <path>''') optparser.add_option('-f', '--database-file', dest='db_file', metavar='PATH', default='apport_duplicates.db', help='Location of the database file') options, args = optparser.parse_args() if len(args) == 0: optparser.error('No command specified') if not os.path.exists(options.db_file): apport.fatal('file does not exist: %s', options.db_file) # pure DB operations don't need a real backend, and thus no crashdb.conf crashdb = apport.crashdb_impl.memory.CrashDatabase(None, {}) # if args[0] in (): # # these commands require a real DB # crashdb = get_crashdb(None, None, {}) # else: crashdb.init_duplicate_db(options.db_file) try: command = globals()['command_' + args.pop(0)] except KeyError: apport.fatal('unknown command (use --help for a short help)') command(crashdb, options, args) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/bin/oem-getlogs����������������������������������������������������������������������0000775�0000000�0000000�00000020576�14416106601�013003� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /usr/bin/python3 from apport import hookutils from glob import glob from io import BytesIO from problem_report import CompressedValue import apport import os import re import shutil import subprocess import sys import tempfile import time import zipfile opt_debug = False # Apport helper routines def debug(text): if opt_debug: print("%s\n" % (text)) def attach_command_output(report, command_list, key): debug("%s" % (' '.join(command_list))) log = hookutils.command_output(command_list) if not log or log[:5] == "Error": return report[key] = log def attach_pathglob_as_zip(report, pathglob, key, data_filter=None, type="b"): """Use zip file here because tarfile module in linux can't properly handle file size 0 with content in /sys directory like edid file. zipfile module works fine here. So we use it. type: a: for ascii type of data b: for binary type of data """ if data_filter is None: data_filter = lambda x: x filelist = [] for pg in pathglob: for file in glob(pg): filelist.append(file) zipf = BytesIO() with zipfile.ZipFile(zipf, mode='w', compression=zipfile.ZIP_DEFLATED) as \ zipobj: for f in filelist: if opt_debug: print(key, f) if not os.path.isfile(f): if opt_debug: print(f, "is not a file") continue if type == "a": with open(f) as f_fd: data = f_fd.read() zipobj.writestr(f, data_filter(data)) else: zipobj.write(f) cvalue = CompressedValue() cvalue.set_value(zipf.getbuffer()) report[key + ".zip"] = cvalue def attach_nvidia_debug_logs(report, keep_locale=False): # check if nvidia-bug-report.sh exists nv_debug_command = 'nvidia-bug-report.sh' if shutil.which(nv_debug_command) is None: if opt_debug: print(nv_debug_command, "does not exist.") return env = os.environ.copy() if not keep_locale: env['LC_MESSAGES'] = 'C' # output result to temp directory nv_tempdir = tempfile.mkdtemp() nv_debug_file = 'nvidia-bug-report' nv_debug_fullfile = os.path.join(nv_tempdir, nv_debug_file) nv_debug_cmd = [nv_debug_command, '--output-file', nv_debug_fullfile] try: with open(os.devnull, 'w') as devnull: subprocess.run(nv_debug_cmd, env=env, stdout=devnull, stderr=devnull) nv_debug_fullfile_gz = nv_debug_fullfile + ".gz" hookutils.attach_file_if_exists(report, nv_debug_fullfile_gz, 'nvidia-bug-report.gz') os.unlink(nv_debug_fullfile_gz) os.rmdir(nv_tempdir) except OSError as e: print("Error:", str(e)) print("Fail on cleanup", nv_tempdir, ". Please file a bug for it.") def dot(): print(".", end="", flush=True) def build_packages(): # related packages packages = ['apt', 'grub2'] # display packages.append('xorg') packages.append('gnome-shell') # audio packages.append('alsa-base') # hotkey and hotplugs packages.append('udev') # networking issues packages.append('network-manager') return packages def helper_url_credential_filter(string_with_urls): return re.sub(r"://\w+?:\w+?@", "://USER:SECRET@", string_with_urls) def add_info(report): # Check if the DCD file is exist in the installer. attach_command_output(report, ['ubuntu-report', 'show'], 'UbuntuReport') dot() hookutils.attach_file_if_exists(report, '/etc/buildstamp', 'BuildStamp') dot() attach_pathglob_as_zip(report, ['/sys/firmware/acpi/tables/*', '/sys/firmware/acpi/tables/*/*'], "acpitables") dot() # Basic hardare information hookutils.attach_hardware(report) dot() hookutils.attach_wifi(report) dot() hwe_system_commands = {'lspci--xxxx': ['lspci', '-xxxx'], 'lshw.json': ['lshw', '-json', '-numeric'], 'dmidecode': ['dmidecode'], 'fwupdmgr_get-devices': ['fwupdmgr', 'get-devices', '--show-all-devices', '--no-unreported-check'], 'boltctl-list': ['boltctl', 'list'], 'mokutil---sb-state': ['mokutil', '--sb-state'], 'tlp-stat': ['tlp-stat'] } for name in hwe_system_commands: attach_command_output(report, hwe_system_commands[name], name) dot() # More audio related hookutils.attach_alsa(report) dot() audio_system_commands = {'pactl-list': ['pactl', 'list'], 'aplay-l': ['aplay', '-l'], 'aplay-L': ['aplay', '-L'], 'arecord-l': ['arecord', '-l'], 'arecord-L': ['arecord', '-L'] } for name in audio_system_commands: attach_command_output(report, audio_system_commands[name], name) dot() attach_pathglob_as_zip(report, ['/usr/share/alsa/ucm/*/*'], "ALSA-UCM") dot() # FIXME: should be included in xorg in the future gfx_system_commands = {'glxinfo': ['glxinfo'], 'xrandr': ['xrandr'], 'xinput': ['xinput'] } for name in gfx_system_commands: attach_command_output(report, gfx_system_commands[name], name) dot() attach_pathglob_as_zip(report, ['/sys/devices/*/*/drm/card?/*/edid'], "EDID") dot() # nvidia-bug-reports.sh attach_nvidia_debug_logs(report) dot() # FIXME: should be included in thermald in the future attach_pathglob_as_zip(report, ["/etc/thermald/*", "/sys/devices/virtual/thermal/*", "/sys/class/thermal/*"], "THERMALD") dot() # all kernel and system messages attach_pathglob_as_zip(report, ["/var/log/*", "/var/log/*/*"], "VAR_LOG") dot() # apt configs attach_pathglob_as_zip(report, [ "/etc/apt/apt.conf.d/*", "/etc/apt/sources.list", "/etc/apt/sources.list.d/*.list", "/etc/apt/preferences.d/*"], "APT_CONFIGS", type="a", data_filter=helper_url_credential_filter) dot() # TODO: debug information for suspend or hibernate # packages installed. attach_command_output(report, ['dpkg', '-l'], 'dpkg-l') dot() # FIXME: should be included in bluez in the future attach_command_output(report, ['hciconfig', '-a'], 'hciconfig-a') dot() # FIXME: should be included in dkms in the future attach_command_output(report, ['dkms', 'status'], 'dkms_status') dot() # enable when the feature to include data from package hooks exists. # packages = build_packages() # attach_related_packages(report, packages) if __name__ == '__main__': from argparse import ArgumentParser import gzip parser = ArgumentParser(prog="oem-getlogs", usage="Useage: sudo -E oem-getlogs [-c CASE_ID]", description="Get Hardware Enablement related logs") parser.add_argument("-c", "--case-id", help="optional CASE_ID", dest="cid", default="") args = parser.parse_args() # check if we got root permission if os.geteuid() != 0: print("Error: you need to run this program as root") parser.print_help() sys.exit(1) print("Start to collect logs: ", end="", flush=True) # create report report = apport.Report() add_info(report) # generate filename hostname = os.uname()[1] date_time = time.strftime("%Y%m%d%H%M%S%z", time.localtime()) filename_lst = ["oemlogs", hostname] if (len(args.cid) > 0): filename_lst.append(args.cid) filename_lst.append(date_time + ".apport.gz") filename = "-".join(filename_lst) with gzip.open(filename, 'wb') as f: report.write(f) print("\nSaved log to", filename) print("The owner of the file is root. You might want to") print(" chown [user].[group]", filename) ����������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/��������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�15020112361�010752� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/apport��������������������������������������������������������������������������0000775�0000000�0000000�00000102720�15020112361�012207� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # Collect information about a crash and create a report in the directory # specified by apport.fileutils.report_dir. # See https://wiki.ubuntu.com/Apport for details. # # Copyright (c) 2006 - 2016 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import sys, os, os.path, subprocess, time, traceback, pwd, io import signal, inspect, grp, fcntl, socket, atexit, array, struct import errno, argparse, stat import re import apport, apport.fileutils ################################################################# # # functions # ################################################################# def pidfd_getpid(pidfd): """Get the associated pid from the pid file descriptor. This function is equivalent to the identical named function in glibc. """ pid_re = re.compile(rb"^Pid:\s*(-?[0-9]+)$") with open("/proc/self/fdinfo/%i" % pidfd, "rb") as fdinfo_file: for line in fdinfo_file: match = pid_re.match(line) if match: return int(match.group(1)) raise OSError(errno.EBADF, "%s: %i" % (os.strerror(errno.EBADF), pidfd)) def check_lock(): '''Abort if another instance of apport is already running. This avoids bringing down the system to its knees if there is a series of crashes.''' # create a lock file try: fd = os.open("/var/run/apport.lock", os.O_WRONLY | os.O_CREAT | os.O_NOFOLLOW, mode=0o600) except OSError as e: error_log('cannot create lock file (uid %i): %s' % (os.getuid(), str(e))) sys.exit(1) def error_running(*args): error_log('another apport instance is already running, aborting') sys.exit(1) original_handler = signal.signal(signal.SIGALRM, error_running) signal.alarm(30) # Timeout after that many seconds try: fcntl.lockf(fd, fcntl.LOCK_EX) except IOError: error_running() finally: signal.alarm(0) signal.signal(signal.SIGALRM, original_handler) (pidstat, crash_uid, crash_gid, cwd, proc_pid_fd) = (None, None, None, None, None) def proc_pid_exists(path): """Test whether a path relative to /proc/<pid> exists. Returns False for broken symbolic links.""" assert proc_pid_fd is not None try: os.stat(path, dir_fd=proc_pid_fd) except (OSError, ValueError): return False return True def proc_pid_opener(path, flags): return os.open(path, flags, dir_fd=proc_pid_fd) def get_pid_info(pid): '''Read /proc information about pid''' global pidstat, crash_uid, crash_gid, cwd, proc_pid_fd proc_pid_fd = os.open('/proc/%s' % pid, os.O_RDONLY | os.O_PATH | os.O_DIRECTORY) # unhandled exceptions on missing or invalidly formatted files are okay # here -- we want to know in the log file pidstat = os.stat('stat', dir_fd=proc_pid_fd) # determine UID and GID of the target process; do *not* use the owner of # /proc/pid/stat, as that will be root for setuid or unreadable programs! # (this matters when suid_dumpable is enabled) with open('status', opener=proc_pid_opener) as status_file: contents = status_file.read() (crash_uid, crash_gid) = apport.fileutils.get_uid_and_gid(contents) assert crash_uid is not None, 'failed to parse Uid' assert crash_gid is not None, 'failed to parse Gid' cwd = os.open('cwd', os.O_RDONLY | os.O_PATH | os.O_DIRECTORY, dir_fd=proc_pid_fd) def get_process_starttime(): '''Get the starttime of the process using proc_pid_fd''' with open("stat", opener=proc_pid_opener) as stat_file: contents = stat_file.read() return apport.fileutils.get_starttime(contents) def get_apport_starttime(): '''Get the Apport process starttime''' with open("/proc/%s/stat" % os.getpid()) as stat_file: contents = stat_file.read() return apport.fileutils.get_starttime(contents) def drop_privileges(): '''Change effective user and group to crash_[ug]id ''' # Drop any supplemental groups, or we'll still be in the root group if os.getuid() == 0: os.setgroups([]) assert os.getgroups() == [] os.setregid(-1, crash_gid) os.setreuid(-1, crash_uid) assert os.getegid() == crash_gid assert os.geteuid() == crash_uid def recover_privileges(): '''Change effective user and group back to real uid and gid ''' os.setregid(-1, os.getgid()) os.setreuid(-1, os.getuid()) assert os.getegid() == os.getgid() assert os.geteuid() == os.getuid() def init_error_log(): '''Open a suitable error log if sys.stderr is not a tty.''' if not os.isatty(2): log = os.environ.get('APPORT_LOG_FILE', '/var/log/apport.log') try: f = os.open(log, os.O_WRONLY | os.O_CREAT | os.O_APPEND, 0o600) try: admgid = grp.getgrnam('adm')[2] os.chown(log, -1, admgid) os.chmod(log, 0o640) except KeyError: pass # if group adm doesn't exist, just leave it as root except OSError: # on a permission error, don't touch stderr return os.dup2(f, 1) os.dup2(f, 2) sys.stderr = os.fdopen(2, 'wb') if sys.version_info.major >= 3: sys.stderr = io.TextIOWrapper(sys.stderr) sys.stdout = sys.stderr def error_log(msg): '''Output something to the error log.''' apport.error('apport (pid %s) %s: %s', os.getpid(), time.asctime(), msg) def _log_signal_handler(sgn, frame): '''Internal apport signal handler. Just log the signal handler and exit.''' # reset handler so that we do not get stuck in loops signal.signal(sgn, signal.SIG_IGN) try: error_log('Got signal %i, aborting; frame:' % sgn) for s in inspect.stack(): error_log(str(s)) except Exception: pass sys.exit(1) def setup_signals(): '''Install a signal handler for all crash-like signals, so that apport is not called on itself when apport crashed.''' signal.signal(signal.SIGILL, _log_signal_handler) signal.signal(signal.SIGABRT, _log_signal_handler) signal.signal(signal.SIGFPE, _log_signal_handler) signal.signal(signal.SIGSEGV, _log_signal_handler) signal.signal(signal.SIGPIPE, _log_signal_handler) signal.signal(signal.SIGBUS, _log_signal_handler) def write_user_coredump( pid, timestamp, limit, report_owner_uid, coredump_fd=None, from_report=None ): '''Write the core into a directory if ulimit requests it.''' # three cases: # limit == 0: do not write anything # limit < 0: unlimited, write out everything # limit nonzero: crashed process' core size ulimit in bytes if limit == 0: return (core_name, core_path) = apport.fileutils.get_core_path(pid, options.executable_path, crash_uid, timestamp, proc_pid_fd) try: # Limit number of core files to prevent DoS apport.fileutils.clean_core_directory(report_owner_uid) core_file = os.open(core_path, os.O_WRONLY | os.O_CREAT | os.O_EXCL, mode=0o400, dir_fd=cwd) except (OSError, IOError): return error_log('writing core dump to %s (limit: %s)' % (core_name, str(limit))) written = 0 # Priming read if from_report: r = apport.Report() r.load(from_report) core_size = len(r['CoreDump']) if limit > 0 and core_size > limit: error_log('aborting core dump writing, size %i exceeds current limit' % core_size) os.close(core_file) os.unlink(core_path, dir_fd=cwd) return error_log('writing core dump %s of size %i' % (core_name, core_size)) os.write(core_file, r['CoreDump']) else: block = os.read(coredump_fd, 1048576) while True: size = len(block) if size == 0: break written += size if limit > 0 and written > limit: error_log('aborting core dump writing, size exceeds current limit %i' % limit) os.close(core_file) os.unlink(core_path, dir_fd=cwd) return if os.write(core_file, block) != size: error_log('aborting core dump writing, could not write') os.close(core_file) os.unlink(core_path, dir_fd=cwd) return block = os.read(coredump_fd, 1048576) # Make sure the user can read it os.fchown(core_file, report_owner_uid, -1) os.close(core_file) def usable_ram(): '''Return how many bytes of RAM is currently available that can be allocated without causing major thrashing.''' # abuse our excellent RFC822 parser to parse /proc/meminfo r = apport.Report() with open('/proc/meminfo', 'rb') as f: r.load(f) memfree = int(r['MemFree'].split()[0]) cached = int(r['Cached'].split()[0]) writeback = int(r['Writeback'].split()[0]) return (memfree + cached - writeback) * 1024 def _run_with_output_limit_and_timeout(args, output_limit, timeout, close_fds=True, env=None): '''Run command like subprocess.run() but with output limit and timeout. Return (stdout, stderr).''' stdout = b"" stderr = b"" process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=close_fds, env=env) try: # Don't block so we don't deadlock os.set_blocking(process.stdout.fileno(), False) os.set_blocking(process.stderr.fileno(), False) for _ in range(timeout): alive = process.poll() is None while len(stdout) < output_limit and len(stderr) < output_limit: tempout = process.stdout.read(100) if tempout: stdout += tempout temperr = process.stderr.read(100) if temperr: stderr += temperr if not tempout and not temperr: break if not alive or len(stdout) >= output_limit or len(stderr) >= output_limit: break time.sleep(1) finally: process.kill() return stdout, stderr def is_closing_session(): '''Check if pid is in a closing user session. During that, crashes are common as the session D-BUS and X.org are going away, etc. These crash reports are mostly noise, so should be ignored. ''' # Sanity check, don't do anything for root processes if crash_uid == 0 or crash_gid == 0: return False with open('environ', 'rb', opener=proc_pid_opener) as e: env = e.read().split(b'\0') for e in env: if e.startswith(b'DBUS_SESSION_BUS_ADDRESS='): dbus_addr = e.split(b'=', 1)[1].decode() break else: error_log('is_closing_session(): no DBUS_SESSION_BUS_ADDRESS in environment') return False dbus_socket = apport.fileutils.get_dbus_socket(dbus_addr) if not dbus_socket: error_log('is_closing_session(): Could not determine DBUS socket.') return False if not os.path.exists(dbus_socket): error_log("is_closing_session(): DBUS socket doesn't exist.") return False # We need to drop both the real and effective uid/gid before calling # gdbus because DBUS_SESSION_BUS_ADDRESS is untrusted and may allow # reading arbitrary files as a noncefile. We can't just drop effective # uid/gid as gdbus has a check to make sure it's not running in a # setuid environment and it does so by comparing the real and effective # ids. We don't need to drop supplemental groups here, as the privilege # dropping code elsewhere has already done so. real_uid = os.getuid() real_gid = os.getgid() try: os.setresgid(crash_gid, crash_gid, real_gid) os.setresuid(crash_uid, crash_uid, real_uid) out, err = _run_with_output_limit_and_timeout(['/usr/bin/gdbus', 'call', '-e', '-d', 'org.gnome.SessionManager', '-o', '/org/gnome/SessionManager', '-m', 'org.gnome.SessionManager.IsSessionRunning', '-t', '5'], 1000, 5, env={'DBUS_SESSION_BUS_ADDRESS': dbus_addr}) if err: error_log('gdbus call error: ' + err.decode('UTF-8')) except OSError as e: error_log('gdbus call failed, cannot determine running session: ' + str(e)) return False finally: os.setresuid(real_uid, real_uid, -1) os.setresgid(real_gid, real_gid, -1) error_log('debug: session gdbus call: ' + out.decode('UTF-8')) if out.startswith(b'(false,'): return True return False def is_systemd_watchdog_restart(signum): '''Check if this is a restart by systemd's watchdog''' if signum != str(signal.SIGABRT) or not os.path.isdir('/run/systemd/system'): return False try: with open('cgroup', opener=proc_pid_opener) as f: for line in f: if 'name=systemd:' in line: unit = line.split('/')[-1].strip() break else: return False journalctl = subprocess.Popen(['/bin/journalctl', '--output=cat', '--since=-5min', '--priority=warning', '--unit', unit], stdout=subprocess.PIPE) out = journalctl.communicate()[0] return b'Watchdog timeout' in out except (IOError, OSError) as e: error_log('cannot determine if this crash is from systemd watchdog: %s' % e) return False def is_same_ns(ns): if not os.path.exists('/proc/self/ns/%s' % ns) or not proc_pid_exists('ns/%s' % ns): # If the namespace doesn't exist, then it's obviously shared return True try: if os.readlink('ns/%s' % ns, dir_fd=proc_pid_fd) == os.readlink('/proc/self/ns/%s' % ns): # Check that the inode for both namespaces is the same return True except OSError as e: if e.errno == errno.ENOENT: return True else: raise # check to see if the process is part of the system.slice (LP: #1870060) if proc_pid_exists('cgroup'): with open('cgroup', opener=proc_pid_opener) as cgroup: for line in cgroup: fields = line.split(':') if fields[-1].startswith('/system.slice'): return True return False def parse_arguments(): parser = argparse.ArgumentParser(epilog=""" Alternatively, the following command line is understood for legacy hosts: <pid> <signal number> <core file ulimit> <dump mode> [global pid] [exe path] """) # TODO: Use type=int parser.add_argument("-p", "--pid", help="process id (%%p)") parser.add_argument("-s", "--signal-number", help="signal number (%%s)") parser.add_argument("-c", "--core-ulimit", help="core ulimit (%%c)") parser.add_argument("-d", "--dump-mode", help="dump mode (%%d)") parser.add_argument("-P", "--global-pid", help="pid in root namespace (%%P)") parser.add_argument( "-F", "--pidfd", nargs="?", type=int, help="pidfd for the crashed process (%%F)" ) parser.add_argument("-u", "--uid", type=int, help="real UID (%%u)") parser.add_argument("-g", "--gid", type=int, help="real GID (%%g)") parser.add_argument("executable_path", nargs='*', help="path of executable (%%E)") options, rest = parser.parse_known_args() # Legacy command line needs to remain for the scenario where a more # recent apport is running inside a container with an older apport # running on the host. if options.pid is None and len(sys.argv) == 5: # Translate legacy command line return argparse.Namespace( pid=sys.argv[1], signal_number=sys.argv[2], core_ulimit=sys.argv[3], dump_mode=sys.argv[4], global_pid=None, pidfd=None, uid=None, gid=None, executable_path=None, ) if options.pid is None: parser.print_usage() sys.exit(1) if options.dump_mode is None: parser.error("the following arguments are required: -d/--dump-mode") for arg in rest: error_log("Unknown argument: %s" % arg) # In kernels before 5.3.0, an executable path with spaces may be split # into separate arguments. If options.executable_path is a list, join # it back into a string. Also restore directory separators. if isinstance(options.executable_path, list): options.executable_path = " ".join(options.executable_path) options.executable_path = options.executable_path.replace('!', '/') # Sanity check to prevent trickery later on if '../' in options.executable_path: options.executable_path = None return options def consistency_checks(options, process_start): # Sanity check to make sure the process wasn't replaced after the crash # happened. The start time isn't fine-grained enough to be an adequate # security check. apport_start = get_apport_starttime() if process_start > apport_start: error_log('process was replaced after Apport started, ignoring') return False # Make sure the process uid/gid match the ones provided by the kernel # if available, if not, it may have been replaced if (options.uid is not None) and (options.gid is not None): if (options.uid != crash_uid) or (options.gid != crash_gid): error_log("process uid/gid doesn't match expected, ignoring") return False # check if the executable was modified after the process started (e. g. # package got upgraded in between). exe_path = "root%s" % (os.readlink('exe', dir_fd=proc_pid_fd)) exe_stat = None try: exe_stat = os.stat(exe_path, dir_fd=proc_pid_fd) except (OSError, ValueError): pass process_mtime = os.lstat('cmdline', dir_fd=proc_pid_fd).st_mtime if exe_stat is None or exe_stat.st_mtime > process_mtime: error_log('executable was modified after program start, ignoring') return False return True def determine_report_owner(dump_mode, real_user): """Determine who should be the owner of the crash report file. For dump_mode 1 ("debug") the owner of the process can become the crash report owner. For dump_mode 2 ("suidsafe") the crashed process is a suid process and the report should be owned by root instead. See proc_sys_fs(5) man page and https://kernel.org/doc/html/latest/admin-guide/sysctl/fs.html#suid-dumpable """ if dump_mode == "1": return real_user return 0 ################################################################# # # main # ################################################################# init_error_log() # systemd socket activation if 'LISTEN_FDS' in os.environ: try: from systemd.daemon import listen_fds except ImportError: error_log('Received a crash via apport-forward.socket, but systemd python module is not installed') sys.exit(0) # Extract and validate the fd fds = listen_fds() if len(fds) < 1: error_log('Invalid socket activation, no fd provided') sys.exit(1) # Open the socket sock = socket.fromfd(int(fds[0]), socket.AF_UNIX, socket.SOCK_STREAM) atexit.register(sock.shutdown, socket.SHUT_RDWR) # Replace stdin by the socket activation fd sys.stdin.close() fds = array.array('i') ucreds = array.array('i') msg, ancdata, flags, addr = sock.recvmsg(4096, 4096) for cmsg_level, cmsg_type, cmsg_data in ancdata: if (cmsg_level == socket.SOL_SOCKET and cmsg_type == socket.SCM_RIGHTS): fds.fromstring(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) elif (cmsg_level == socket.SOL_SOCKET and cmsg_type == socket.SCM_CREDENTIALS): ucreds.fromstring(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % ucreds.itemsize)]) sys.stdin = os.fdopen(int(fds[0]), 'r') # Replace argv by the arguments received over the socket sys.argv = [sys.argv[0]] sys.argv += msg.decode().split() if len(ucreds) >= 3: sys.argv[1] = "%d" % ucreds[0] if len(sys.argv) != 5: error_log('Received a bad number of arguments from forwarder, received %d, expected 5, aborting.' % len(sys.argv)) sys.exit(1) options = parse_arguments() if options.global_pid is None: pid = options.pid else: pid = options.global_pid get_pid_info(pid) if options.pidfd is not None and int(pid) != pidfd_getpid(options.pidfd): error_log( "The process %s has already been replaced by a new process" " with the same ID. Ignoring crash." % pid ) sys.exit(1) process_start = get_process_starttime() if not consistency_checks(options, process_start): sys.exit(0) # Check if we received a valid global PID (kernel >= 3.12). If we do, # then compare it with the local PID. If they don't match, it's an # indication that the crash originated from another PID namespace. # Simply log an entry in the host error log and exit 0. if options.global_pid is not None: host_pid = int(options.global_pid) if not is_same_ns("pid") and not is_same_ns("mnt"): # If the crash came from a container, don't attempt to handle # locally as that would just result in wrong system information. # Instead, attempt to find apport inside the container and # forward the process information there. if options.pidfd is None and options.dump_mode != "1": error_log( "Not forwarding crash with dump mode of %s to container" " due to security concerns. Please provide --pidfd." % options.dump_mode ) sys.exit(0) # Validate that the target socket is owned by the user namespace of the process try: sock_fd = os.open("root/run/apport.socket", os.O_RDONLY | os.O_PATH, dir_fd=proc_pid_fd) socket_uid = os.fstat(sock_fd).st_uid except FileNotFoundError: error_log('host pid %s crashed in a container without apport support' % options.global_pid) sys.exit(0) try: with open("uid_map", "r", opener=proc_pid_opener) as fd: if not apport.fileutils.search_map(fd, socket_uid): error_log("user is trying to trick apport into accessing a socket that doesn't belong to the container") sys.exit(0) except FileNotFoundError: pass # Validate that the crashed binary is owned by the user namespace of the process exe_path = "root%s" % (os.readlink('exe', dir_fd=proc_pid_fd)) exe_stat = os.stat(exe_path, dir_fd=proc_pid_fd) try: with open("uid_map", "r", opener=proc_pid_opener) as fd: if not apport.fileutils.search_map(fd, exe_stat.st_uid): error_log("host pid %s crashed in a container with no access to the binary" % options.global_pid) sys.exit(0) except FileNotFoundError: pass try: with open("gid_map", "r", opener=proc_pid_opener) as fd: if not apport.fileutils.search_map(fd, exe_stat.st_gid): error_log("host pid %s crashed in a container with no access to the binary" % options.global_pid) sys.exit(0) except FileNotFoundError: pass # Now open the socket sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) try: sock.connect('/proc/self/fd/%s' % sock_fd) except Exception: error_log('host pid %s crashed in a container with a broken apport' % options.global_pid) sys.exit(0) # Send main arguments only # Older apport in containers doesn't support positional arguments args = "%s %s %s %s" % (options.pid, options.signal_number, options.core_ulimit, options.dump_mode) try: sock.sendmsg([args.encode()], [ # Send a ucred containing the global pid (socket.SOL_SOCKET, socket.SCM_CREDENTIALS, struct.pack("3i", host_pid, 0, 0)), # Send fd 0 (the coredump) (socket.SOL_SOCKET, socket.SCM_RIGHTS, array.array('i', [0]))]) sock.shutdown(socket.SHUT_RDWR) except Exception: error_log('Container apport failed to process crash within 30s') sys.exit(0) elif not is_same_ns("mnt"): error_log('host pid %s crashed in a separate mount namespace, ignoring' % host_pid) sys.exit(0) # If it doesn't look like the crash originated from within a # full container or if the is_same_ns() function fails open (returning # True), then take the global pid and move on to normal handling. # This bit is needed because some software like the chrome # sandbox will use container namespaces as a security measure but are # still otherwise host processes. When that's the case, we need to keep # handling those crashes locally using the global pid. check_lock() try: setup_signals() signum = options.signal_number core_ulimit = options.core_ulimit dump_mode = options.dump_mode coredump_fd = sys.stdin.fileno() error_log('called for%s pid %s, signal %s, core limit %s, dump mode %s' % (" global" if options.global_pid else "", pid, signum, core_ulimit, dump_mode)) try: core_ulimit = int(core_ulimit) except ValueError: error_log('core limit is invalid, disabling core files') core_ulimit = 0 # clamp core_ulimit to a sensible size, for -1 the kernel reports something # absurdly big if core_ulimit > 9223372036854775807: error_log('ignoring implausibly big core limit, treating as unlimited') core_ulimit = -1 assert crash_uid is not None report_owner_uid = determine_report_owner(options.dump_mode, crash_uid) # ignore SIGQUIT (it's usually deliberately generated by users) if signum == str(int(signal.SIGQUIT)): write_user_coredump(pid, process_start, core_ulimit, report_owner_uid, coredump_fd) sys.exit(0) info = apport.Report('Crash') info['Signal'] = signum core_size_limit = usable_ram() * 3 / 4 if sys.version_info.major < 3: info['CoreDump'] = (sys.stdin, True, core_size_limit, True) else: # read binary data from stdio info['CoreDump'] = (sys.stdin.detach(), True, core_size_limit, True) # We already need this here to figure out the ExecutableName (for scripts, # etc). if options.executable_path is not None and os.path.exists(options.executable_path): info['ExecutablePath'] = options.executable_path else: info['ExecutablePath'] = os.readlink('exe', dir_fd=proc_pid_fd) # Drop privileges temporarily to make sure that we don't # include information in the crash report that the user should # not be allowed to access. drop_privileges() info.add_proc_info(proc_pid_fd=proc_pid_fd) if 'ExecutablePath' not in info: error_log('could not determine ExecutablePath, aborting') sys.exit(1) subject = info['ExecutablePath'].replace('/', '_') base = '%s.%s.%s.hanging' % (subject, str(pidstat.st_uid), pid) hanging = os.path.join(apport.fileutils.report_dir, base) if os.path.exists(hanging): if (os.stat('/proc/uptime').st_ctime < os.stat(hanging).st_mtime): info['ProblemType'] = 'Hang' os.unlink(hanging) if 'InterpreterPath' in info: error_log('script: %s, interpreted by %s (command line "%s")' % (info['ExecutablePath'], info['InterpreterPath'], info['ProcCmdline'])) else: error_log('executable: %s (command line "%s")' % (info['ExecutablePath'], info['ProcCmdline'])) # ignore non-package binaries (unless configured otherwise) if not apport.fileutils.likely_packaged(info['ExecutablePath']): if not apport.fileutils.get_config('main', 'unpackaged', False, bool=True): error_log('executable does not belong to a package, ignoring') # check if the user wants a core dump recover_privileges() write_user_coredump(pid, process_start, core_ulimit, report_owner_uid, coredump_fd) sys.exit(0) # ignore SIGXCPU and SIGXFSZ since this indicates some external # influence changing soft RLIMIT values when running programs. if signum in [str(signal.SIGXCPU), str(signal.SIGXFSZ)]: error_log('Ignoring signal %s (caused by exceeding soft RLIMIT)' % signum) recover_privileges() write_user_coredump(pid, process_start, core_ulimit, report_owner_uid, coredump_fd) sys.exit(0) # ignore blacklisted binaries if info.check_ignored(): error_log('executable version is blacklisted, ignoring') sys.exit(0) # We can now recover privileges to create the crash report file and # write out the user coredumps recover_privileges() if is_closing_session(): error_log('happens for shutting down session, ignoring') sys.exit(0) # ignore systemd watchdog kills; most often they don't tell us the actual # reason (kernel hang, etc.), LP #1433320 if is_systemd_watchdog_restart(signum): error_log('Ignoring systemd watchdog restart') sys.exit(0) crash_counter = 0 # Create crash report file descriptor for writing the report into # report_dir try: report = '%s/%s.%i.crash' % (apport.fileutils.report_dir, info['ExecutablePath'].replace('/', '_'), pidstat.st_uid) if os.path.exists(report): if apport.fileutils.seen_report(report): # do not flood the logs and the user with repeated crashes # and make sure the file isn't a FIFO or symlink fd = os.open(report, os.O_NOFOLLOW | os.O_RDONLY | os.O_NONBLOCK) st = os.fstat(fd) if stat.S_ISREG(st.st_mode): with os.fdopen(fd, 'rb') as f: crash_counter = apport.fileutils.get_recent_crashes(f) crash_counter += 1 if crash_counter > 1: write_user_coredump( pid, process_start, core_ulimit, report_owner_uid, coredump_fd ) error_log('this executable already crashed %i times, ignoring' % crash_counter) sys.exit(0) # remove the old file, so that we can create the new one with # os.O_CREAT|os.O_EXCL os.unlink(report) else: error_log('apport: report %s already exists and unseen, skipping to avoid disk usage DoS' % report) write_user_coredump( pid, process_start, core_ulimit, report_owner_uid, coredump_fd ) sys.exit(0) # we prefer having a file mode of 0 while writing; fd = os.open(report, os.O_RDWR | os.O_CREAT | os.O_EXCL, 0) reportfile = os.fdopen(fd, 'w+b') assert reportfile.fileno() > sys.stderr.fileno() # Make sure the crash reporting daemon can read this report try: gid = pwd.getpwnam('whoopsie').pw_gid os.fchown(fd, report_owner_uid, gid) except (OSError, KeyError): os.fchown(fd, report_owner_uid, -1) except (OSError, IOError) as e: error_log('Could not create report file: %s' % str(e)) sys.exit(1) # Drop privileges before writing out the reportfile. drop_privileges() info.add_user_info() info.add_os_info() if crash_counter > 0: info['CrashCounter'] = '%i' % crash_counter try: info.write(reportfile) except IOError: os.unlink(report) raise if 'CoreDump' not in info: error_log('core dump exceeded %i MiB, dropped from %s to avoid memory overflow' % (core_size_limit / 1048576, report)) # Get privileges back so the core file can be written to root-owned # corefile directory recover_privileges() # make the report writable now, when it's completely written os.fchmod(fd, 0o640) error_log('wrote report %s' % report) # Check if the user wants a core file. We need to create that from the # written report, as we can only read stdin once and write_user_coredump() # might abort reading from stdin and remove the written core file when # core_ulimit is > 0 and smaller than the core size. reportfile.seek(0) write_user_coredump(pid, process_start, core_ulimit, report_owner_uid, from_report=reportfile) except (SystemExit, KeyboardInterrupt): raise except Exception: error_log('Unhandled exception:') traceback.print_exc() error_log('pid: %i, uid: %i, gid: %i, euid: %i, egid: %i' % ( os.getpid(), os.getuid(), os.getgid(), os.geteuid(), os.getegid())) error_log('environment: %s' % str(os.environ)) ������������������������������������������������apport-2.20.11/data/apport-checkreports�������������������������������������������������������������0000775�0000000�0000000�00000002365�14416105132�014713� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # Check if there are new reports for the invoking user. Exit with 0 if new # reports are available, or with 1 if not. # # Copyright (c) 2006 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import sys, optparse from apport.fileutils import get_new_reports, get_new_system_reports import apport # parse command line options optparser = optparse.OptionParser('%prog [options]') optparser.add_option('-s', '--system', default=False, action='store_true', help='Check for crash reports from system users.') options, args = optparser.parse_args() if options.system: reports = get_new_system_reports() else: reports = get_new_reports() if len(reports) > 0: for r in reports: print(r.split('.')[0].split('_')[-1]) if apport.packaging.enabled(): sys.exit(0) else: print('new reports but apport disabled') sys.exit(2) else: sys.exit(1) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/apportcheckresume���������������������������������������������������������������0000775�0000000�0000000�00000006221�14416105132�014433� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # Copyright (C) 2009 Canonical Ltd. # Author: Andy Whitcroft <apw@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os import sys import datetime from apport import unicode_gettext as _ from apport.hookutils import attach_file_if_exists def main(argv=None): if argv is None: argv = sys.argv try: from apport.packaging_impl import impl as packaging if not packaging.enabled(): return -1 import apport.report pr = apport.report.Report(type='KernelOops') libdir = '/var/lib/pm-utils' flagfile = libdir + '/status' stresslog = libdir + '/stress.log' hanglog = libdir + '/resume-hang.log' pr.add_os_info() pr.add_proc_info() pr.add_user_info() pr.add_package(apport.packaging.get_kernel_package()) # grab the contents of the suspend/resume flag file attach_file_if_exists(pr, flagfile, 'Failure') # grab the contents of the suspend/hibernate log file attach_file_if_exists(pr, '/var/log/pm-suspend.log', 'SleepLog') # grab the contents of the suspend/resume stress test log if present. attach_file_if_exists(pr, stresslog, 'StressLog') # Ensure we are appropriately tagged. if 'Failure' in pr: pr['Tags'] = 'resume ' + pr['Failure'] # Record the failure mode. pr['Failure'] += '/resume' # If we had a late hang pull in the resume-hang logfile. Also # add an additional tag so we can pick these out. if os.path.exists(hanglog): attach_file_if_exists(pr, hanglog, 'ResumeHangLog') pr['Tags'] += ' resume-late-hang' # Generate a sensible report message. if pr.get('Failure') == 'suspend/resume': pr['Annotation'] = _('This occurred during a previous suspend, and prevented the system from resuming properly.') else: pr['Annotation'] = _('This occurred during a previous hibernation, and prevented the system from resuming properly.') # If we had a late hang make sure the dialog is clear that they may # not have noticed. Also update the bug title so we notice. if os.path.exists(hanglog): pr['Annotation'] += ' ' + _('The resume processing hung very near the end and will have appeared to have completed normally.') pr['Failure'] = 'late resume' if pr.check_ignored(): return 0 nowtime = datetime.datetime.now() pr_filename = '/var/crash/susres.%s.crash' % (str(nowtime).replace(' ', '_')) with os.fdopen(os.open(pr_filename, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'wb') as report_file: pr.write(report_file) return 0 except Exception: print('apportcheckresume failed') raise if __name__ == '__main__': sys.exit(main()) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/dump_acpi_tables.py�������������������������������������������������������������0000775�0000000�0000000�00000003130�14416106601�014627� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 import os, sys, stat def dump_acpi_table(filename, tablename, out): '''Dump a single ACPI table''' if not os.access(filename, os.R_OK): return out.write('%s @ 0x0000000000000000\n' % tablename[0:4]) n = 0 f = open(filename, 'rb') hex_str = '' try: byte = f.read(1) while byte != b'': val = ord(byte) if (n & 15) == 0: if (n > 65535): hex_str = ' %4.4X: ' % n else: hex_str = ' %4.4X: ' % n ascii_str = '' hex_str = hex_str + '%2.2X ' % val if (val < 32) or (val > 126): ascii_str = ascii_str + '.' else: ascii_str = ascii_str + chr(val) n = n + 1 if (n & 15) == 0: out.write('%s %s\n' % (hex_str, ascii_str)) byte = f.read(1) finally: if (n % 16) != 0: for i in range(n & 15, 16): hex_str = hex_str + ' ' out.write('%s %s\n' % (hex_str, ascii_str)) f.close() out.write('\n') def dump_acpi_tables(path, out): '''Dump ACPI tables''' tables = os.listdir(path) for tablename in tables: pathname = os.path.join(path, tablename) mode = os.stat(pathname).st_mode if stat.S_ISDIR(mode): dump_acpi_tables(pathname, out) else: dump_acpi_table(pathname, tablename, out) if os.path.isdir('/sys/firmware/acpi/tables'): dump_acpi_tables('/sys/firmware/acpi/tables', sys.stdout) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/gcc_ice_hook��������������������������������������������������������������������0000775�0000000�0000000�00000002265�14416105132�013307� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # # Collect information about a gcc internal compiler exception (ICE). # # Copyright (c) 2007 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import sys import apport, apport.fileutils # parse command line arguments if len(sys.argv) != 3: print('Usage: %s <executable name> <gcc -E output file>' % sys.argv[0]) print('If "-" is specified as second argument, the preprocessed source is read from stdin.') sys.exit(1) (exename, sourcefile) = sys.argv[1:] # create report pr = apport.Report() pr['ExecutablePath'] = exename if sourcefile == '-': pr['PreprocessedSource'] = (sys.stdin, False) else: pr['PreprocessedSource'] = (sourcefile, False) # write report try: with apport.fileutils.make_report_file(pr) as f: pr.write(f) except (IOError, OSError) as e: apport.fatal('Cannot create report: ' + str(e)) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/general-hooks/������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416106601�013520� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/general-hooks/cloud_archive.py��������������������������������������������������0000664�0000000�0000000�00000002207�14416105132�016700� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������''' Redirect reports on packages from the Ubuntu Cloud Archive to the launchpad cloud-archive project. Copyright (C) 2013 Canonical Ltd. Author: James Page <james.page@ubuntu.com> 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. See http://www.gnu.org/copyleft/gpl.html for the full text of the license. ''' from apport import packaging def add_info(report, ui): package = report.get('Package') if not package: return package = package.split()[0] try: if '~cloud' in packaging.get_version(package) and \ packaging.get_package_origin(package) == 'Canonical': report['CrashDB'] = '''{ "impl": "launchpad", "project": "cloud-archive", "bug_pattern_url": "http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml", }''' except ValueError as e: if 'does not exist' in str(e): return else: raise e �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/general-hooks/generic.py��������������������������������������������������������0000664�0000000�0000000�00000007720�14416106601�015514� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Attach generally useful information, not specific to any package.''' # Copyright (C) 2009 Canonical Ltd. # Authors: Matt Zimmerman <mdz@canonical.com> # Martin Pitt <martin.pitt@ubuntu.com> # Brian Murray <brian@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os, re import apport.hookutils, apport.fileutils def add_info(report, ui): nm = apport.hookutils.nonfree_kernel_modules() if nm: report['NonfreeKernelModules'] = ' '.join(nm) # check for low space mounts = {'/': 'system', '/var': '/var', '/tmp': '/tmp'} home = os.getenv('HOME') if home: mounts[home] = 'home' treshold = 50 for mount in mounts: st = os.statvfs(mount) free_mb = st.f_bavail * st.f_frsize / 1000000 if free_mb < treshold: report['UnreportableReason'] = 'Your %s partition has less than \ %s MB of free space available, which leads to problems using applications \ and installing updates. Please free some space.' % (mounts[mount], free_mb) # important glib errors/assertions (which should not have private data) if 'ExecutablePath' in report: path = report['ExecutablePath'] gtk_like = (apport.fileutils.links_with_shared_library(path, 'libgtk') or apport.fileutils.links_with_shared_library(path, 'libgtk-3') or apport.fileutils.links_with_shared_library(path, 'libX11')) if gtk_like and apport.hookutils.in_session_of_problem(report): xsession_errors = apport.hookutils.xsession_errors() if xsession_errors: report['XsessionErrors'] = xsession_errors # using local libraries? if 'ProcMaps' in report: local_libs = set() for lib in re.finditer(r'\s(/[^ ]+\.so[.0-9]*)$', report['ProcMaps'], re.M): if not apport.fileutils.likely_packaged(lib.group(1)): local_libs.add(lib.group(1)) if ui and local_libs: if not ui.yesno('''The crashed program seems to use third-party or local libraries: %s It is highly recommended to check if the problem persists without those first. Do you want to continue the report process anyway? ''' % '\n'.join(local_libs)): raise StopIteration report['LocalLibraries'] = ' '.join(local_libs) report['Tags'] = (report.get('Tags', '') + ' local-libs').strip() # using third-party packages? if '[origin:' in report.get('Package', '') or '[origin:' in report.get('Dependencies', ''): report['Tags'] = (report.get('Tags', '') + ' third-party-packages').strip() # using ecryptfs? if os.path.exists(os.path.expanduser('~/.ecryptfs/wrapped-passphrase')): report['EcryptfsInUse'] = 'Yes' # filter out crashes on missing GLX (LP#327673) in_gl = '/usr/lib/libGL.so' in (report.get('StacktraceTop') or '\n').splitlines()[0] if in_gl and 'Loading extension GLX' not in apport.hookutils.read_file('/var/log/Xorg.0.log'): report['UnreportableReason'] = 'The X.org server does not support the GLX extension, which the crashed program expected to use.' # filter out package install failures due to a segfault if 'Segmentation fault' in report.get('ErrorMessage', '') \ and report['ProblemType'] == 'Package': report['UnreportableReason'] = 'The package installation resulted in a segmentation fault which is better reported as a crash report rather than a package install failure.' # log errors if report['ProblemType'] == 'Crash': apport.hookutils.attach_journal_errors(report) if __name__ == '__main__': r = {} add_info(r, None) for k in r: print('%s: %s' % (k, r[k])) ������������������������������������������������apport-2.20.11/data/general-hooks/parse_segv.py�����������������������������������������������������0000664�0000000�0000000�00000034502�14416105132�016232� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # Examine the crash files saved by apport to attempt to determine the cause # of a segfault. Currently very very simplistic, and only finds commonly # understood situations for x86/x86_64. # # Copyright 2009-2010 Canonical, Ltd. # Author: Kees Cook <kees@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import sys, re, logging, io class ParseSegv(object): def __init__(self, registers, disassembly, maps, debug=False): if debug: if sys.version > '3': logging.basicConfig(level=logging.DEBUG, stream=io.TextIOWrapper(sys.stderr, encoding='UTF-8')) else: logging.basicConfig(level=logging.DEBUG, stream=sys.stderr) self.regs = self.parse_regs(registers) self.sp = None for reg in ['rsp', 'esp']: if reg in self.regs: self.sp = self.regs[reg] self.line, self.pc, self.insn, self.src, self.dest = \ self.parse_disassembly(disassembly) self.stack_vma = None self.maps = self.parse_maps(maps) def find_vma(self, addr): for vma in self.maps: if addr >= vma['start'] and addr < vma['end']: return vma return None def parse_maps(self, maps_str): maps = [] for line in maps_str.splitlines(): items = line.strip().split() try: span, perms, bits, dev = items[0:4] except Exception: raise ValueError('Cannot parse maps line: %s' % (line.strip())) if len(items) == 5: name = None else: name = items[5] start, end = [int(x, 16) for x in span.split('-')] if name == '[stack]': self.stack_vma = len(maps) maps.append({'start': start, 'end': end, 'perms': perms, 'name': name}) logging.debug('start: %s, end: %s, perms: %s, name: %s', start, end, perms, name) return maps def parse_regs(self, reg_str): regs = dict() for line in reg_str.splitlines(): reg, hexvalue = line.split()[0:2] regs[reg] = int(hexvalue, 16) logging.debug('%s:0x%08x', reg, regs[reg]) return regs def parse_disassembly(self, disassembly): if not self.regs: raise ValueError('Registers not loaded yet!?') lines = disassembly.splitlines() # Throw away possible 'Dump' gdb report line if len(lines) > 0 and lines[0].startswith('Dump'): lines.pop(0) if len(lines) < 1: raise ValueError('Failed to load empty disassembly') line = lines[0].strip() # Drop GDB 7.1's leading $pc mark if line.startswith('=>'): line = line[2:].strip() logging.debug(line) pc_str = line.split()[0] if pc_str.startswith('0x'): pc = int(pc_str.split(':')[0], 16) else: # Could not identify this instruction line raise ValueError('Could not parse PC "%s" from disassembly line: %s' % (pc_str, line)) logging.debug('pc: 0x%08x', pc) full_insn_str = line.split(':', 1)[1].strip() # Handle invalid memory if 'Cannot access memory at address' in full_insn_str or (full_insn_str == '' and len(lines) == 1): return line, pc, None, None, None # Handle wrapped lines if full_insn_str == '' and lines[1].startswith(' '): line = line + ' ' + lines[1].strip() full_insn_str = line.split(':', 1)[1].strip() insn_parts = full_insn_str.split() # Drop call target names "call 0xb7a805af <_Unwind_Find_FDE@plt+111>" if insn_parts[-1].endswith('>') and insn_parts[-1].startswith('<'): insn_parts.pop(-1) # Attempt to find arguments args_str = '' if len(insn_parts) > 1: args_str = insn_parts.pop(-1) # Assume remainder is the insn itself insn = ' '.join(insn_parts) logging.debug('insn: %s', insn) args = [] src = None dest = None if args_str == '': # Could not find insn args args = None else: logging.debug('args: "%s"', args_str) for m in re.finditer(r'([^,\(]*(\(:?[^\)]+\))*)', args_str): if len(m.group(0)): args.append(m.group(0)) if len(args) > 0: src = args[0] logging.debug('src: %s', src) if len(args) > 1: dest = args[1] logging.debug('dest: %s', dest) # Set up possible implicit memory destinations (stack actions) if insn in ['push', 'pop', 'pushl', 'popl', 'call', 'callq', 'ret', 'retq']: for reg in ['rsp', 'esp']: if reg in self.regs: dest = '(%%%s)' % (reg) break return line, pc, insn, src, dest def validate_vma(self, perm, addr, name): perm_name = {'x': ['executable', 'executing'], 'r': ['readable', 'reading'], 'w': ['writable', 'writing']} vma = self.find_vma(addr) if vma is None: alarmist = 'unknown' if addr < 65536: alarmist = 'NULL' return False, '%s (0x%08x) not located in a known VMA region (needed %s region)!' % (name, addr, perm_name[perm][0]), '%s %s VMA' % (perm_name[perm][1], alarmist) elif perm not in vma['perms']: alarmist = '' if perm == 'x': if 'w' in vma['perms']: alarmist = 'writable ' else: alarmist = 'non-writable ' short = '%s %sVMA %s' % (perm_name[perm][1], alarmist, vma['name']) return False, '%s (0x%08x) in non-%s VMA region: 0x%08x-0x%08x %s %s' % (name, addr, perm_name[perm][0], vma['start'], vma['end'], vma['perms'], vma['name']), short else: return True, '%s (0x%08x) ok' % (name, addr), '%s ok' % (perm_name[perm][1]) def register_value(self, reg): reg_orig = reg # print reg mask = 0 if reg.startswith('%'): # print('%s -> %s' % (reg, reg[1:])) reg = reg[1:] if reg in self.regs: # print('got %s (%d & %d == %d)' % (reg, self.regs[reg], mask, self.regs[reg] & ~mask)) return self.regs[reg] if len(reg) == 2 and reg.endswith('l'): mask |= 0xff00 # print('%s -> %sx' % (reg, reg[0])) reg = '%sx' % reg[0] if reg in self.regs: # print('got %s (%d & %d == %d)' % (reg, self.regs[reg], mask, self.regs[reg] & ~mask)) return self.regs[reg] & ~mask if len(reg) == 2 and reg.endswith('x'): mask |= 0xffff0000 # print('%s -> e%s' % (reg, reg)) reg = 'e%s' % reg if reg in self.regs: # print('got %s (%d & %d == %d)' % (reg, self.regs[reg], mask, self.regs[reg] & ~mask)) return self.regs[reg] & ~mask if len(reg) == 3 and reg.startswith('e'): mask |= 0xffffffff00000000 # print('%s -> r%s' % (reg, reg[1:])) reg = 'r%s' % reg[1:] if reg in self.regs: # print('got %s (%d & %d == %d)' % (reg, self.regs[reg], mask, self.regs[reg] & ~mask)) return self.regs[reg] & ~mask raise ValueError("Could not resolve register '%s'" % (reg_orig)) def calculate_arg(self, arg): # Check for and pre-remove segment offset segment = 0 if arg.startswith('%') and ':' in arg: parts = arg.split(':', 1) segment = self.regs[parts[0][1:]] arg = parts[1] # Handle standard offsets parts = arg.split('(') offset = parts[0] # Handle negative signs sign = 1 if offset.startswith('-'): sign = -1 offset = offset[1:] # Skip call target dereferences if offset.startswith('*'): offset = offset[1:] if len(offset) > 0: if offset.startswith('%'): # Handle the *%REG case add = self.regs[offset[1:]] else: if not offset.startswith('0x'): raise ValueError('Unknown offset literal: %s' % (parts[0])) add = int(offset[2:], 16) * sign else: add = 0 def _reg_val(self, text, val=0): if text.startswith('%'): val = self.regs[text[1:]] elif text == "": val = 0 else: val = int(text) return val # (%ebx, %ecx, 4) style value = 0 if len(parts) > 1: parens = parts[1][0:-1] reg_list = parens.split(',') base = 0 if len(reg_list) > 0: base = _reg_val(self, reg_list[0], base) index = 0 if len(reg_list) > 1: index = _reg_val(self, reg_list[1], index) scale = 1 if len(reg_list) > 2: scale = _reg_val(self, reg_list[2], scale) value = base + index * scale value = segment + value + add if 'esp' in self.regs: # 32bit return value % 0x100000000 else: # 64bit return value % 0x10000000000000000 def report(self): understood = False reason = [] details = ['Segfault happened at: %s' % (self.line)] # Verify PC is in an executable region valid, out, short = self.validate_vma('x', self.pc, 'PC') details.append(out) if not valid: reason.append(short) understood = True if self.insn in ['lea', 'leal']: # Short-circuit for instructions that do not cause vma access details.append('insn (%s) does not access VMA' % (self.insn)) else: # Verify source is readable if self.src: if ':' not in self.src and (self.src[0] in ['%', '$', '*']) and not self.src.startswith('*%'): details.append('source "%s" ok' % (self.src)) else: addr = self.calculate_arg(self.src) valid, out, short = self.validate_vma('r', addr, 'source "%s"' % (self.src)) details.append(out) if not valid: reason.append(short) understood = True # Verify destination is writable if self.dest: if ':' not in self.dest and (self.dest[0] in ['%', '$', '*']): details.append('destination "%s" ok' % (self.dest)) else: addr = self.calculate_arg(self.dest) valid, out, short = self.validate_vma('w', addr, 'destination "%s"' % (self.dest)) details.append(out) if not valid: reason.append(short) understood = True # Handle I/O port operations if self.insn in ['out', 'in'] and not understood: reason.append('disallowed I/O port operation on port %d' % (self.register_value(self.src))) details.append('disallowed I/O port operation on port %d' % (self.register_value(self.src))) understood = True # Note position of SP with regard to "[stack]" VMA if self.sp is not None: if self.stack_vma is not None: if self.sp < self.maps[self.stack_vma]['start']: details.append("Stack memory exhausted (SP below stack segment)") if self.sp >= self.maps[self.stack_vma]['end']: details.append("Stack pointer not within stack segment") if not understood: valid, out, short = self.validate_vma('r', self.sp, 'SP') details.append(out) if not valid: reason.append(short) understood = True if not understood: vma = self.find_vma(self.pc) if vma and (vma['name'] == '[vdso]' or vma['name'] == '[vsyscall]'): reason.append('Reason could not be automatically determined. (Unhandled exception in kernel code?)') details.append('Reason could not be automatically determined. (Unhandled exception in kernel code?)') else: reason.append('Reason could not be automatically determined.') details.append('Reason could not be automatically determined.') return understood, '\n'.join(reason), '\n'.join(details) def add_info(report): # Only interested in segmentation faults... if report.get('Signal', '0') != '11': return needed = ['Signal', 'Architecture', 'Disassembly', 'ProcMaps', 'Registers'] for field in needed: if field not in report: report['SegvAnalysis'] = 'Skipped: missing required field "%s"' % (field) return # Only run on segv for x86 and x86_64... if not report['Architecture'] in ['i386', 'amd64']: return try: segv = ParseSegv(report['Registers'], report['Disassembly'], report['ProcMaps']) understood, reason, details = segv.report() if understood: report['SegvReason'] = reason report['SegvAnalysis'] = details except BaseException as e: report['SegvAnalysis'] = 'Failure: %s' % (str(e)) if __name__ == '__main__': if len(sys.argv) != 4 or sys.argv[1] in ['-h', '--help']: print('To run self-test, run without any arguments (or with -v)') print('To do stand-alone crash parsing:') print(' Usage: %s Registers.txt Disassembly.txt ProcMaps.txt' % (sys.argv[0])) sys.exit(0) segv = ParseSegv(open(sys.argv[1]).read(), open(sys.argv[2]).read(), open(sys.argv[3]).read()) understood, reason, details = segv.report() print('%s\n\n%s' % (reason, details)) rc = 0 if not understood: rc = 1 sys.exit(rc) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/general-hooks/powerpc.py��������������������������������������������������������0000664�0000000�0000000�00000010763�14416106601�015560� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This hook collects logs for Power systems and more specific logs for Pseries, # PowerNV platforms. # # Author: Thierry FAUCK <thierry@linux.vnet.ibm.com> # # 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, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os, os.path, platform, tempfile, subprocess from apport.hookutils import command_output, attach_root_command_outputs, attach_file, attach_file_if_exists, command_available '''IBM Power System related information''' def add_tar(report, dir, key): (fd, f) = tempfile.mkstemp(prefix='apport.', suffix='.tar') os.close(fd) subprocess.call(['tar', 'chf', f, dir]) if os.path.getsize(f) > 0: report[key] = (f, ) # NB, don't cleanup the temp file, it'll get read later by the apport main # code def add_info(report, ui): arch = platform.machine() if arch not in ['ppc64', 'ppc64le']: return is_kernel = report['ProblemType'].startswith('Kernel') or 'linux' in report.get('Package', '') try: with open('/proc/cpuinfo', 'r') as fp: contents = fp.read() ispSeries = 'pSeries' in contents isPowerNV = 'PowerNV' in contents isPowerKVM = 'emulated by qemu' in contents except IOError: ispSeries = False isPowerNV = False isPowerKVM = False if ispSeries or isPowerNV: if is_kernel: add_tar(report, '/proc/device-tree/', 'DeviceTree.tar') attach_file(report, '/proc/misc', 'ProcMisc') attach_file(report, '/proc/locks', 'ProcLocks') attach_file(report, '/proc/loadavg', 'ProcLoadAvg') attach_file(report, '/proc/swaps', 'ProcSwaps') attach_file(report, '/proc/version', 'ProcVersion') report['cpu_smt'] = command_output(['ppc64_cpu', '--smt']) report['cpu_cores'] = command_output(['ppc64_cpu', '--cores-present']) report['cpu_coreson'] = command_output(['ppc64_cpu', '--cores-on']) # To be executed as root if is_kernel: attach_root_command_outputs(report, { 'cpu_runmode': 'ppc64_cpu --run-mode', 'cpu_freq': 'ppc64_cpu --frequency', 'cpu_dscr': 'ppc64_cpu --dscr', 'nvram': 'cat /dev/nvram', }) attach_file_if_exists(report, '/var/log/platform') if ispSeries and not isPowerKVM: attach_file(report, '/proc/ppc64/lparcfg', 'ProcLparCfg') attach_file(report, '/proc/ppc64/eeh', 'ProcEeh') attach_file(report, '/proc/ppc64/systemcfg', 'ProcSystemCfg') report['lscfg_vp'] = command_output(['lscfg', '-vp']) report['lsmcode'] = command_output(['lsmcode', '-A']) report['bootlist'] = command_output(['bootlist', '-m', 'both', '-r']) report['lparstat'] = command_output(['lparstat', '-i']) if command_available('lsvpd'): report['lsvpd'] = command_output(['lsvpd', '--debug']) if command_available('lsvio'): report['lsvio'] = command_output(['lsvio', '-des']) if command_available('servicelog'): report['servicelog_dump'] = command_output(['servicelog', '--dump']) if command_available('servicelog_notify'): report['servicelog_list'] = command_output(['servicelog_notify', '--list']) if command_available('usysattn'): report['usysattn'] = command_output(['usysattn']) if command_available('usysident'): report['usysident'] = command_output(['usysident']) if command_available('serv_config'): report['serv_config'] = command_output(['serv_config', '-l']) if isPowerNV: add_tar(report, '/proc/ppc64/', 'ProcPpc64.tar') attach_file_if_exists(report, '/sys/firmware/opal/msglog') if os.path.exists('/var/log/dump'): report['VarLogDump_list'] = command_output(['ls', '-l', '/var/log/dump']) if is_kernel: add_tar(report, '/var/log/opal-elog', 'OpalElog.tar') �������������apport-2.20.11/data/general-hooks/ubuntu-gnome.py���������������������������������������������������0000664�0000000�0000000�00000004374�14416105132�016525� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Bugs and crashes for the Ubuntu GNOME flavour. Copyright (C) 2013 Canonical Ltd. Author: Martin Pitt <martin.pitt@ubuntu.com> 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. See http://www.gnu.org/copyleft/gpl.html for the full text of the license. ''' def add_info(report, ui): release = report.get('DistroRelease', '') msg = 'The GNOME3 PPA you are using is no longer supported for this Ubuntu release. Please ' # redirect reports against PPA packages to ubuntu-gnome project if '[origin: LP-PPA-gnome3-team-gnome3' in report.get('Package', ''): report['CrashDB'] = '''{ "impl": "launchpad", "project": "ubuntu-gnome", "bug_pattern_url": "http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml", "dupdb_url": "http://phillw.net/ubuntu-gnome/apport_duplicates/", }''' # using the staging PPA? if 'LP-PPA-gnome3-team-gnome3-staging' in report.get('Package', ''): report.setdefault('Tags', '') report['Tags'] += ' gnome3-staging' if release in ('Ubuntu 14.04', 'Ubuntu 16.04'): report['UnreportableReason'] = '%s run "ppa-purge ppa:gnome3-team/gnome3-staging".' % msg # using the next PPA? elif 'LP-PPA-gnome3-team-gnome3-next' in report.get('Package', ''): report.setdefault('Tags', '') report['Tags'] += ' gnome3-next' if release in ('Ubuntu 14.04', 'Ubuntu 16.04'): report['UnreportableReason'] = '%s run "ppa-purge ppa:gnome3-team/gnome3-next".' % msg else: if release in ('Ubuntu 14.04', 'Ubuntu 16.04'): report['UnreportableReason'] = '%s run "ppa-purge ppa:gnome3-team/gnome3".' % msg if '[origin: LP-PPA-gnome3-team-gnome3' in report.get('Dependencies', ''): report.setdefault('Tags', '') report['Tags'] += ' gnome3-ppa' if release in ('Ubuntu 14.04', 'Ubuntu 16.04') and 'UnreportableReason' not in report: report['UnreportableReason'] = '%s use ppa-purge to remove the PPA.' % msg ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/general-hooks/ubuntu.py���������������������������������������������������������0000664�0000000�0000000�00000061761�14416106601�015427� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Attach generally useful information, not specific to any package. Copyright (C) 2009 Canonical Ltd. Authors: Matt Zimmerman <mdz@canonical.com>, Brian Murray <brian@ubuntu.com> 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. See http://www.gnu.org/copyleft/gpl.html for the full text of the license. ''' import re, os, os.path, time, sys, subprocess import apport.packaging import apport.hookutils import problem_report from apport import unicode_gettext as _ from glob import glob if sys.version < '3': from urlparse import urljoin from urllib2 import urlopen (urljoin, urlopen) # pyflakes else: from urllib.parse import urljoin from urllib.request import urlopen def add_info(report, ui): add_release_info(report) add_kernel_info(report) add_cloud_info(report) add_proposed_info(report) # collect a condensed version of /proc/cpuinfo apport.hookutils.attach_file(report, '/proc/cpuinfo', 'ProcCpuinfo') short_cpuinfo = [] for item in reversed(report.get('ProcCpuinfo', '').split('\n')): short_cpuinfo.append(item) if item.startswith('processor\t:'): break short_cpuinfo = reversed(short_cpuinfo) report['ProcCpuinfoMinimal'] = '\n'.join(short_cpuinfo) report.pop('ProcCpuinfo') hook_errors = [k for k in report.keys() if k.startswith('HookError_')] if hook_errors: add_tag(report, 'apport-hook-error') # locally installed python versions can cause a multitude of errors if report.get('ProblemType') == 'Package' or \ 'python' in report.get('InterpreterPath', '') or \ 'python' in report.get('ExecutablePath', ''): for python in ('python', 'python3'): add_python_details('%sDetails' % python.title(), python, report) try: report['ApportVersion'] = apport.packaging.get_version('apport') except ValueError: # might happen on local installs pass # We want to know if people have modified apport's crashdb.conf in case # crashes are reported to Launchpad when they shouldn't be e.g. for a # non-development release. apport.hookutils.attach_conffiles(report, 'apport', ui=ui) casper_md5check = 'casper-md5check.json' if 'LiveMediaBuild' in report: apport.hookutils.attach_casper_md5check(report, '/run/%s' % casper_md5check) else: apport.hookutils.attach_casper_md5check(report, '/var/log/installer/%s' % casper_md5check) if report.get('ProblemType') == 'Package': # every error report regarding a package should have package manager # version information apport.hookutils.attach_related_packages(report, ['dpkg', 'apt']) check_for_disk_error(report) # check to see if the real root on a persistent media is full if 'LiveMediaBuild' in report: st = os.statvfs('/cdrom') free_mb = st.f_bavail * st.f_frsize / 1000000 if free_mb < 10: report['UnreportableReason'] = 'Your system partition has less than \ %s MB of free space available, which leads to problems using applications \ and installing updates. Please free some space.' % (free_mb) match_error_messages(report) # these attachments will not exist if ProblemType is Bug as the package # hook runs after the general hook for attachment in ['DpkgTerminalLog', 'VarLogDistupgradeApttermlog']: if attachment in report: log_file = get_attachment_contents(report, attachment) untrimmed_dpkg_log = log_file check_attachment_for_errors(report, attachment) trimmed_log = get_attachment_contents(report, attachment) trimmed_log = trimmed_log.split('\n') lines = [] for line in untrimmed_dpkg_log.splitlines(): if line not in trimmed_log: lines.append(str(line)) elif line in trimmed_log: trimmed_log.remove(line) dpkg_log_without_error = '\n'.join(lines) # crash reports from live system installer often expose target mount for f in ('ExecutablePath', 'InterpreterPath'): if f in report and report[f].startswith('/target/'): report[f] = report[f][7:] # Allow filing update-manager bugs with obsolete packages if report.get('Package', '').startswith('update-manager'): os.environ['APPORT_IGNORE_OBSOLETE_PACKAGES'] = '1' # file bugs against OEM project for modified packages if 'Package' in report: v = report['Package'].split()[1] oem_project = get_oem_project(report) if oem_project and ('common' in v or oem_project in v): report['CrashDB'] = 'canonical-oem' if 'Package' in report: package = report['Package'].split()[0] if package: apport.hookutils.attach_conffiles(report, package, ui=ui) # do not file bugs against "upgrade-system" if it is not installed (LP#404727) if package == 'upgrade-system' and 'not installed' in report['Package']: report['UnreportableReason'] = 'You do not have the upgrade-system package installed. Please report package upgrade failures against the package that failed to install, or against upgrade-manager.' if 'Package' in report: package = report['Package'].split()[0] if package: apport.hookutils.attach_upstart_overrides(report, package) apport.hookutils.attach_upstart_logs(report, package) # build a duplicate signature tag for package reports if report.get('ProblemType') == 'Package': if 'DpkgTerminalLog' in report: # this was previously trimmed in check_attachment_for_errors termlog = report['DpkgTerminalLog'] elif 'VarLogDistupgradeApttermlog' in report: termlog = get_attachment_contents(report, 'VarLogDistupgradeApttermlog') else: termlog = None if termlog: (package, version) = report['Package'].split(None, 1) # for packages that run update-grub include /etc/default/grub UPDATE_BOOT = ['friendly-recovery', 'linux', 'memtest86+', 'plymouth', 'ubuntu-meta', 'virtualbox-ose'] ug_failure = r'/etc/kernel/post(inst|rm)\.d/zz-update-grub exited with return code [1-9]+' mkconfig_failure = r'/usr/sbin/grub-mkconfig.*/etc/default/grub: Syntax error' if re.search(ug_failure, termlog) or re.search(mkconfig_failure, termlog): if report['SourcePackage'] in UPDATE_BOOT: apport.hookutils.attach_default_grub(report, 'EtcDefaultGrub') dupe_sig = '' dupe_sig_created = False # messages we expect to see from a package manager (LP: #1692127) pkg_mngr_msgs = re.compile(r"""^(Authenticating| De-configuring| Examining| Installing| Preparing| Processing\ triggers| Purging| Removing| Replaced| Replacing| Setting\ up| Unpacking| Would remove).* \.\.\.\s*$""", re.X) for line in termlog.split('\n'): if pkg_mngr_msgs.search(line): dupe_sig = '%s\n' % line dupe_sig_created = True continue dupe_sig += '%s\n' % line # this doesn't catch 'dpkg-divert: error' LP: #1581399 if 'dpkg: error' in dupe_sig and line.startswith(' '): if 'trying to overwrite' in line: conflict_pkg = re.search('in package (.*) ', line) if conflict_pkg and not apport.packaging.is_distro_package(conflict_pkg.group(1)): report['UnreportableReason'] = _('An Ubuntu package has a file conflict with a package that is not a genuine Ubuntu package.') add_tag(report, 'package-conflict') if dupe_sig_created: # the duplicate signature should be the first failure report['DuplicateSignature'] = 'package:%s:%s\n%s' % (package, version, dupe_sig) break if dupe_sig: if dpkg_log_without_error.find(dupe_sig) != -1: report['UnreportableReason'] = _('You have already encountered this package installation failure.') def match_error_messages(report): # There are enough of these now that it is probably worth refactoring... # -mdz if report.get('ProblemType') == 'Package': if 'failed to install/upgrade: corrupted filesystem tarfile' in report.get('Title', ''): report['UnreportableReason'] = 'This failure was caused by a corrupted package download or file system corruption.' if 'is already installed and configured' in report.get('ErrorMessage', ''): report['SourcePackage'] = 'dpkg' def check_attachment_for_errors(report, attachment): if report.get('ProblemType') == 'Package': wrong_grub_msg = _('''Your system was initially configured with grub version 2, but you have removed it from your system in favor of grub 1 without configuring it. To ensure your bootloader configuration is updated whenever a new kernel is available, open a terminal and run: sudo apt-get install grub-pc ''') trim_dpkg_log(report) log_file = get_attachment_contents(report, attachment) if 'DpkgTerminalLog' in report \ and re.search(r'^Not creating /boot/grub/menu.lst as you wish', report['DpkgTerminalLog'], re.MULTILINE): grub_hook_failure = True else: grub_hook_failure = False if report['Package'] not in ['grub', 'grub2']: # linux-image postinst emits this when update-grub fails # https://wiki.ubuntu.com/KernelTeam/DebuggingUpdateErrors grub_errors = [r'^User postinst hook script \[.*update-grub\] exited with value', r'^run-parts: /etc/kernel/post(inst|rm).d/zz-update-grub exited with return code [1-9]+', r'^/usr/sbin/grub-probe: error'] for grub_error in grub_errors: if attachment in report and re.search(grub_error, log_file, re.MULTILINE): # File these reports on the grub package instead grub_package = apport.packaging.get_file_package('/usr/sbin/update-grub') if grub_package is None or grub_package == 'grub' and 'grub-probe' not in log_file: report['SourcePackage'] = 'grub' if os.path.exists('/boot/grub/grub.cfg') and grub_hook_failure: report['UnreportableReason'] = wrong_grub_msg else: report['SourcePackage'] = 'grub2' if report['Package'] != 'initramfs-tools': # update-initramfs emits this when it fails, usually invoked from the linux-image postinst # https://wiki.ubuntu.com/KernelTeam/DebuggingUpdateErrors if attachment in report and re.search(r'^update-initramfs: failed for ', log_file, re.MULTILINE): # File these reports on the initramfs-tools package instead report['SourcePackage'] = 'initramfs-tools' if report['Package'].startswith('linux-image-') and attachment in report: # /etc/kernel/*.d failures from kernel package postinst m = re.search(r'^run-parts: (/etc/kernel/\S+\.d/\S+) exited with return code \d+', log_file, re.MULTILINE) if m: path = m.group(1) package = apport.packaging.get_file_package(path) if package: report['SourcePackage'] = package report['ErrorMessage'] = m.group(0) if package == 'grub-pc' and grub_hook_failure: report['UnreportableReason'] = wrong_grub_msg else: report['UnreportableReason'] = 'This failure was caused by a program which did not originate from Ubuntu' error_message = report.get('ErrorMessage') corrupt_package = 'This failure was caused by a corrupted package download or file system corruption.' out_of_memory = 'This failure was caused by the system running out of memory.' if 'failed to install/upgrade: corrupted filesystem tarfile' in report.get('Title', ''): report['UnreportableReason'] = corrupt_package if 'dependency problems - leaving unconfigured' in error_message: report['UnreportableReason'] = 'This failure is a followup error from a previous package install failure.' if 'failed to allocate memory' in error_message: report['UnreportableReason'] = out_of_memory if 'cannot access archive' in error_message: report['UnreportableReason'] = corrupt_package if re.search(r'(failed to read|failed in write|short read) on buffer copy', error_message): report['UnreportableReason'] = corrupt_package if re.search(r'(failed to read|failed to write|failed to seek|unexpected end of file or stream)', error_message): report['UnreportableReason'] = corrupt_package if re.search(r'(--fsys-tarfile|dpkg-deb --control) returned error exit status 2', error_message): report['UnreportableReason'] = corrupt_package if attachment in report and re.search(r'dpkg-deb: error.*is not a debian format archive', log_file, re.MULTILINE): report['UnreportableReason'] = corrupt_package if 'is already installed and configured' in report.get('ErrorMessage', ''): # there is insufficient information in the data currently gathered # so gather more data report['SourcePackage'] = 'dpkg' report['AptdaemonVersion'] = apport.packaging.get_version('aptdaemon') apport.hookutils.attach_file_if_exists(report, '/var/log/dpkg.log', 'DpkgLog') apport.hookutils.attach_file_if_exists(report, '/var/log/apt/term.log', 'AptTermLog') # gather filenames in /var/crash to see if there is one for dpkg reports = glob('/var/crash/*') if reports: report['CrashReports'] = apport.hookutils.command_output( ['stat', '-c', '%a:%u:%g:%s:%y:%x:%n'] + reports) add_tag(report, 'already-installed') def check_for_disk_error(report): devs_to_check = [] if 'Dmesg.txt' not in report and 'CurrentDmesg.txt' not in report: return if 'Df.txt' not in report: return df = report['Df.txt'] device_error = False for line in df: line = line.strip('\n') if line.endswith('/') or line.endswith('/usr') or line.endswith('/var'): # without manipulation it'd look like /dev/sda1 device = line.split(' ')[0].strip('0123456789') device = device.replace('/dev/', '') devs_to_check.append(device) dmesg = report.get('CurrentDmesg.txt', report['Dmesg.txt']) for line in dmesg: line = line.strip('\n') if 'I/O error' in line: # no device in this line if 'journal commit I/O error' in line: continue for dev in devs_to_check: if re.search(dev, line): error_device = dev device_error = True break if device_error: report['UnreportableReason'] = 'This failure was caused by a hardware error on /dev/%s' % error_device def add_kernel_info(report): # This includes the Ubuntu packaged kernel version apport.hookutils.attach_file_if_exists(report, '/proc/version_signature', 'ProcVersionSignature') def add_release_info(report): # https://bugs.launchpad.net/bugs/364649 media = '/var/log/installer/media-info' apport.hookutils.attach_file_if_exists(report, media, 'InstallationMedia') # Preinstalled Raspberry Pi images include a build date breadcrumb apport.hookutils.attach_file_if_exists(report, '/.disk/info', 'ImageMediaBuild') if 'ImageMediaBuild' in report: add_tag(report, '%s-image' % report['Architecture']) try: with open('/proc/device-tree/compatible', 'rb') as f: is_a_pi = any(vendor == 'raspberrypi' for s in f.read().split(b'\0') if s for vendor, model in (s.decode('ascii').split(',', 1),)) except FileNotFoundError: is_a_pi = False if is_a_pi: add_tag(report, 'raspi-image') # if we are running from a live system, add the build timestamp apport.hookutils.attach_file_if_exists( report, '/cdrom/.disk/info', 'LiveMediaBuild') if os.path.exists('/cdrom/.disk/info'): report['CasperVersion'] = apport.packaging.get_version('casper') # https://wiki.ubuntu.com/FoundationsTeam/Specs/OemTrackingId apport.hookutils.attach_file_if_exists( report, '/var/lib/ubuntu_dist_channel', 'DistributionChannelDescriptor') release_codename = apport.hookutils.command_output(['lsb_release', '-sc'], stderr=None) if release_codename.startswith('Error'): release_codename = None else: add_tag(report, release_codename) if os.path.exists(media): mtime = os.stat(media).st_mtime human_mtime = time.strftime('%Y-%m-%d', time.gmtime(mtime)) delta = time.time() - mtime report['InstallationDate'] = 'Installed on %s (%d days ago)' % (human_mtime, delta / 86400) log = '/var/log/dist-upgrade/main.log' if os.path.exists(log): mtime = os.stat(log).st_mtime human_mtime = time.strftime('%Y-%m-%d', time.gmtime(mtime)) delta = time.time() - mtime # Would be nice if this also showed which release was originally installed report['UpgradeStatus'] = 'Upgraded to %s on %s (%d days ago)' % (release_codename, human_mtime, delta / 86400) else: report['UpgradeStatus'] = 'No upgrade log present (probably fresh install)' def add_proposed_info(report): '''Tag if package comes from -proposed''' if 'Package' not in report: return try: (package, version) = report['Package'].split()[:2] except ValueError: print('WARNING: malformed Package field: ' + report['Package']) return apt_cache = subprocess.Popen(['apt-cache', 'showpkg', package], stdout=subprocess.PIPE, universal_newlines=True) out = apt_cache.communicate()[0] if apt_cache.returncode != 0: print('WARNING: apt-cache showpkg %s failed' % package) return found_proposed = False found_updates = False found_security = False for line in out.splitlines(): if line.startswith(version + ' ('): if '-proposed_' in line: found_proposed = True if '-updates_' in line: found_updates = True if '-security' in line: found_security = True if found_proposed and not found_updates and not found_security: add_tag(report, 'package-from-proposed') def add_cloud_info(report): # EC2 and Ubuntu Enterprise Cloud instances ec2_instance = False for pkg in ('ec2-init', 'cloud-init'): try: if apport.packaging.get_version(pkg): ec2_instance = True break except ValueError: pass if ec2_instance: metadata_url = 'http://169.254.169.254/latest/meta-data/' ami_id_url = urljoin(metadata_url, 'ami-id') try: ami = urlopen(ami_id_url, timeout=5).read() except Exception: ami = None if ami and ami.startswith(b'ami'): add_tag(report, 'ec2-images') fields = {'Ec2AMIManifest': 'ami-manifest-path', 'Ec2Kernel': 'kernel-id', 'Ec2Ramdisk': 'ramdisk-id', 'Ec2InstanceType': 'instance-type', 'Ec2AvailabilityZone': 'placement/availability-zone'} report['Ec2AMI'] = ami for key, value in fields.items(): try: report[key] = urlopen(urljoin(metadata_url, value), timeout=5).read() except Exception: report[key] = 'unavailable' else: add_tag(report, 'uec-images') def add_tag(report, tag): report.setdefault('Tags', '') if tag in report['Tags'].split(): return report['Tags'] += ' ' + tag def get_oem_project(report): '''Determine OEM project name from Distribution Channel Descriptor Return None if it cannot be determined or does not exist. ''' dcd = report.get('DistributionChannelDescriptor', None) if dcd and dcd.startswith('canonical-oem-'): return dcd.split('-')[2] return None def trim_dpkg_log(report): '''Trim DpkgTerminalLog to the most recent installation session.''' if 'DpkgTerminalLog' not in report: return if not report['DpkgTerminalLog'].strip(): report['UnreportableReason'] = '/var/log/apt/term.log does not contain any data' return lines = [] dpkg_log = report['DpkgTerminalLog'] if isinstance(dpkg_log, bytes): trim_re = re.compile(b'^\\(.* ... \\d+ .*\\)$') start_re = re.compile(b'^Log started:') else: trim_re = re.compile('^\\(.* ... \\d+ .*\\)$') start_re = re.compile('^Log started:') for line in dpkg_log.splitlines(): if start_re.match(line) or trim_re.match(line): lines = [] continue lines.append(line) # If trimming the log file fails, return the whole log file. if not lines: return if isinstance(lines[0], str): report['DpkgTerminalLog'] = '\n'.join(lines) else: report['DpkgTerminalLog'] = '\n'.join([str(line.decode('UTF-8', 'replace')) for line in lines]) def get_attachment_contents(report, attachment): if isinstance(report[attachment], problem_report.CompressedValue): contents = report[attachment].get_value().decode('UTF-8') else: contents = report[attachment] return contents def add_python_details(key, python, report): '''Add comma separated details about which python is being used''' python_path = apport.hookutils.command_output(['which', python]) if python_path.startswith('Error: '): report[key] = 'N/A' return python_link = apport.hookutils.command_output(['readlink', '-f', python_path]) python_pkg = apport.fileutils.find_file_package(python_path) if python_pkg: python_pkg_version = apport.packaging.get_version(python_pkg) python_version = apport.hookutils.command_output([python_link, '--version']) data = '%s, %s' % (python_link, python_version) if python_pkg: data += ', %s, %s' % (python_pkg, python_pkg_version) else: data += ', unpackaged' report[key] = data if __name__ == '__main__': import sys # for testing: update report file given on command line if len(sys.argv) != 2: sys.stderr.write('Usage for testing this hook: %s <report file>\n' % sys.argv[0]) sys.exit(1) report_file = sys.argv[1] report = apport.Report() with open(report_file, 'rb') as f: report.load(f) report_keys = set(report.keys()) new_report = report.copy() add_info(new_report, None) new_report_keys = set(new_report.keys()) # Show differences # N.B. Some differences will exist if the report file is not from your # system because the hook runs against your local system. changed = 0 for key in sorted(report_keys | new_report_keys): if key in new_report_keys and key not in report_keys: print('+%s: %s' % (key, new_report[key])) changed += 1 elif key in report_keys and key not in new_report_keys: print('-%s: (deleted)' % key) changed += 1 elif key in report_keys and key in new_report_keys: if report[key] != new_report[key]: print('~%s: (changed)' % key) changed += 1 print('%d items changed' % changed) ���������������apport-2.20.11/data/general-hooks/wayland_session.py������������������������������������������������0000664�0000000�0000000�00000000341�14416105132�017270� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Detect if the current session is running under wayland''' import os def add_info(report, ui): if os.environ.get('WAYLAND_DISPLAY'): report.setdefault('Tags', '') report['Tags'] += ' wayland-session' �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/��������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�012111� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/32x32/��������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�012672� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/32x32/apps/���������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�013635� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/32x32/apps/apport.png�����������������������������������������������������0000664�0000000�0000000�00000004362�13562354544�015655� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��� ��� ���szz���sBIT|d��� pHYs�� �� B(x���tEXtSoftware�www.inkscape.org<��oIDATXŗkpUksνܛ.$$!QZ%XVKmAԩϪMӇ@Sm;S3Uh$Eˆ@011r^�)r_kk>ONWG_8,/rǒS @IEϘt1b) !B-mjuOnxj4wUS9�җ }b'ְ&r/׾[p?Ӯ阵ғ鴖PRV~%�} ]=in~Ϸ-;g=�4*Cʺ1˳Ϋ+/*m*]TVK8@Vg30ߒ&�K3`O T|Ev)a?N19;RQYuh㼆wF|%'ž)aMd -lPQ + D�d!l;nF``Nۖ]L?aXv^qVh!�[-Dl7ٗwC+5�`kqwvf<Z=i ;#T-XTH5iu,vͲ7^u# 6y?x#Z$liɄ Bǂq-ڶ컫`�w6TV}gRYIQ-=0DO;%[eo`f>fylƠcU1`4i*=]xJ$,9wڴPVD$k@\i[H VC|JUw/&<`]_W K/ bC$@0! qď?\0³CluS>-' X &LU81#* @3@JIh lK:! qXO22_p}t\8~`{.K19A+�$�B�y&HK,dom R ydEv01XPRC&ر73"ǿڕ 6Dfc k TF,nMөW._;oz#WT¥Ї]vhDP fe� ePJc0 k\`gǛ:e\�b'lGyvq#! gĐt L(r2G?ӡsWTOO, WF�E#�Z9�kxjH}^Of0�X'0 0m1r9mU޻'OYܖEPAN/<z/^ `lFАFAhR``+}X!)DƔJp[XL˝RYoFoߍZ�0}ec8<H{D,QqöL I;xJ{0?ʤ2bʬo.-?`֊/R/**4H9"5Пst0&HBLT'#t3T-q:r8nL)Pnb1+J+ן^-}xA[4㜩3j҉f\b{~E[߿mዬԏ`_2* ;@u83L(TY$IeobgG<x0u]L=s;g 9ր ױu8x9}?|Ko] Q %AQ_S }_2Ƥ6߾�6sYW{s}iu]L;kG�q4v(kϾt<%|?\ /H(8m2ݝ[2%~6=*ZY[Cڍ]o]~d|]3t*ώl}z;tb[ewp|e8ە`??g%{`/.%Cf˝/9_5u?t}ˈ>{;q|ȲsS4b?Uwh."tBݣ~0nؗPC`}K]F+罁C{x-˯pV-eK\ %ρ r}auP|MLذy}4ʤT9*�毅,)|{Fi/iˡԓrS684�Ƕ?Mdr/c٥><YS%_ڿq����IENDB`������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/32x32/mimetypes/����������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�014706� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/32x32/mimetypes/text-x-apport.png�����������������������������������������0000777�0000000�0000000�00000000000�13562354544�023334� 2../apps/apport.png����������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/48x48/��������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�012710� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/48x48/apps/���������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�013653� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/48x48/apps/apport.png�����������������������������������������������������0000664�0000000�0000000�00000007657�13562354544�015705� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���sBIT|d��� pHYs�� �� B(x���tEXtSoftware�www.inkscape.org<��,IDAThՙyTՕ޷;;N@Ӎ 8!:qGƉ-0$ō'ё@ce FQMnk=Gu^&OzuϹ{Ϲ޺ESwX_/RB @E\|Q{6 Ql)e^2DIMל?9 ^QߏaCx 䨳B.^Qcǖ{|ҵfR32Ϧ�~ .8!(fۂoV~H 1| [nx�| @<!ٵ.S= %P&MZZZ@YT+/M^BL�\]i.8?vk{~7̱̓@ckħ$Y^ZZrѣ'op'E˯4cĩS}#'M MR;e)%stwG^:P� ڕL[m6)@M{b�MCKD`㾤tCO[@(|ե5Q 6nೌBkN cIFؚ u@�7c-G,&$+8 �0{ZPMIXt~sz[%ɇϻ| ?vK>Eaf\L UcBKV-:Ρh&1LW#)� FB7E# $U\m|w[Rm@ڝ $uvxS!ghZlBd$rR`hk$׶_�$PeYC?pu.|) ѐ)vm泩lku-rb^p`S6_Dؑؓ%(�-YH9£Ƈޟ}p\h'2Jjru+WJ!G<AMYIkc U1ޒ=iq� =o_AÇؙנ >&7.2e-ؽ?TVTTT=; W3~ƃv#�)KG2jhcֱ8n{i0��?fsI1dp_i  owF7Ν}kog>cM*/#LQQV x%ڎdbׇٶ!#kΦ;Z{F�@R i/Î" " ŀ$FivVٺ~۶[.Kg߾Y3'OK > 0sl�C�6h1JL|G5hW|�=RpOZWo"L=vd2`B |(+GI&{$`b%4;g` @„sX 3S±ܣ!zl>;ooUg0i1a)7 fq= 8Qf,~+u+Ӵc<Z(VR" "3ApW�^xC#f {L!$pxT J+ʃKhic~?l>�^g;ƊG˼Cx? #n)Tpp 4\.D@/�H A Y9LZf[, i^?t)a6rԣv-ۙN<j{ |qGᕀB8\HBͅ. @swCVf 91vp[* w2:|vM=:sdo x;m�S0 *6+B;}rLȺGw}8wvy>{skr@Yo<UqOBް+Gzr  P0 P h Fe: dgXVWA5A%ڢ`#Iykޖ[IԾU6 `1�E`0\*F$:pPp'y }Y5?#.,+C墩 r"UAsaA'LOԨP}z&-P(sb$l;e.f= ZO~q^Ñ|/!m8O=cZ)b\>4v`л7�Qwt'= HA Ds.ac\P;tGG]wG4ʆ{ؾg^JePV`!6^!hkŦd \:ڧ @D21:[S2o?V$IUW|:|k�@2v. pWW`ǂ&3@�`E"@Og=eaXc)ὝwxbNk[#ebؐj_EЏ08XU�}L>"((%I``PX#*@7LXΤ<�lֹĢ piiIM%DO?zR邠\ fqԝto=O{X @" �`m )��x'WVL*jeB6k{NNfM<˫ ȸª(B=8̅{fu AqW{O0 ^)d]+k\Ml3<=nO HU\6'92:AV C�rhkXwk?qg p7+aMC`Xi+FGf:Pm%5NbҞcL ? 1#a{@ZdC( ('[dcݹ[~j^/^U%bdDNCgtb w_֣7<Tf(%F s!"B!wpO}Xɮ}f=P9*+MDأZ`cƵ58!+VZ ~uBMx7hSmLCou ;Ugkk_B 4!`j.3J=ӜM=+<QG a#fW #}a=x;kJ}rPzYEƊ{Tޜ/貣\4V4 =[Y9ntk{IXͻvdLj,F@i&?S=At 6ABq(ܑΦɯ<�R::F%lvdC{;ϳɶ�|qt6yUȧVt{JJRh++%/zYO[/֤yP{4[W_`hӡMRy5bG>ь m >WG$5rwj,z4V{O_Z~i<Eu OKךq;1:BqcbSϏ|u& fe_ue~+̼4d,׽n|*ӗ 56Jq#[_{SOzս?۵,lcgM! KJyi�z}A\gM"?kH�;V|UdY Q%!\+3u2Ϧsż<%�HA}�t{N�=Ś6*Z6Uzd 73q} ؚ;ZO'$UTS D" .6*IӸq/δsˋ.lxY)C O�\N8oPmW^UIg P:)w\I-yF@{+GZj9e4dt?8oןIg=$TG{%<ǰ#; ƯByIN?-\Dկ] ,#~'e{NW ~I����IENDB`���������������������������������������������������������������������������������apport-2.20.11/data/icons/48x48/mimetypes/����������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�014724� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/48x48/mimetypes/text-x-apport.png�����������������������������������������0000777�0000000�0000000�00000000000�13562354544�023352� 2../apps/apport.png����������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/64x64/��������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�012704� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/64x64/apps/���������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�013647� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/64x64/apps/apport.png�����������������������������������������������������0000664�0000000�0000000�00000013642�13562354544�015670� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���@���@���iq���sBIT|d��� pHYs�� �� B(x���tEXtSoftware�www.inkscape.org<��IDATx{y^UosT_͕J22B^K Ohy`Y1 jD "D彖Z &IRkH7jJHRU$]s9}3gS 8-3l9[vqs]-*`͖,X./XKku)m;Vնde]\:;Wfׅ!=p3TXY#纮0L =�!p׹?E%M3Ӵt 7 d~ާKӜBV|X''\AZVo ЧR9L5c*`eqhm:!~usa`zH9&߸–̼dZ!�MGft1b1cHzQ"/4g=ݏc혣ư`u/ν[lQ ze]e[fkC.(W;|<ORon<`2J#z$K:nx@:Οϝ3C\xB-1.�`-UKZ7cVe˭UN .+Hyˉe<๶J|H)/XJ]~B) �=$ؘcǧΫKkͩ> L&G.>.%Uœ\ (yh6WI+yO<nK_vJKF'@ m=>|2DZ:k`0 krj5">SQSgY81R:fLR=)(sĦwC]TǞ~ <P(eҮ=Ujp�N"n|^A[,Lr{4Y]>6 � X 霋N:|Bo@(Q 4:)VĔZlÓO箹<ld iY !jN"`QJآ!+S**)///ǎh\ W%OPnkӜ�ϡ#s G]BQbpQ{ъTז/Mrc_gfC'@RB�'"̱0٩\ ˮ=oKY7=p[?_#[rM "C v Gܼ<X D U Eɲ6SJo2av<W`\0$d#xB{8mCNuՉ:z- _|O7�v<_e+VČHN%tɫ%k+(_4BJ=bֿH`LoW`[�On* e?,,%ѯ.Ld~[+~]OR)c E ?/)'UW㰧rK0  0+$ Hݴu\>9mhΤ/$̟;on7@֠(|/Ub%嵕g<zߞ,9I%>pM]��KyQ#v(RW9cN@``e̋ $^\s:JWw,s/v< \^V*g2׏T.4²,(*DG2i͘кȤ?Y0dG߱Bᲂ)xEI'2RiL;=/mRO =pypJ/+*P7KBDL`VD@"`t<D$RmM%nZ{N��jle夜1+ʚhiH((GNtY>ҍ|7᳤ďYa"@Q>! $e� ڨġ7[>6c04nö: s(,+^ G�9С(r=]F .!EOB>UבR͜vl1  P4B|à 0x5`JDKf嫟>2%|4R- XX0Z2_a΋]mnDì1QPG( !A@. dЩDFHǶ "0a8İE�[Y'x =" 7HgU~&cF`JCTa)%ebDhڹ-M̕Z»&`:}^jH&O IS,W3a( aEC#x>xQFhwT:$ֆdbˆ maa$cȁ;v7~~l NS^ru_~^L:O�|Ly]M�q^ ~~v@w& z:Sx )c� b \:Z\|W=xf- e׃q{ԿG䟿NC5#! ڈDR^NLC !cꈍa4ww}_7�`eU3A0"@GD8*LH- R{7}|DzW}_?qqRCe;y`9'i<2,z38H<>&hWXO҃e^;U%?eN l0�14�{A~0h@XB>-MƟN3EO b~$Zk7SfH}�! O` *<Pzg"@#}o~"Eɵ3g͑BR3:1`:yJUH yVݹ�!0 Fe}CĐH,N `H{}t lA czx OU H@P"gZ 1 nlT Yqj'gA`P%rM�_(H3`PlPғCswJ�<&�}tnڇ`(ҁeZ^nиXP,$/:K6FTt2 =ГHdɐ:? "$A ` (/=9*A'WP(hB`�AJP` >Bf ۝v lX9c˝::@z@3g ,ËcMGjDlh2�3 '`! s9 �P#(B20Z#it_w&Y\-**"kaQʋopݗo5+ǜ,u=eBL!Y>Ϝn巟sh  F?\A��t 8tfTbV{Y H~LJVNaB#"> \ o=ﭯ63 c_|er#F9 BI6|hc@ gx �1"I_Yկ~C-jn;Eʫ:),>h�8 KI)߀Fy`&9ῆ`0$"pz஡7vnX\g˗ҝm:nrNs<^75Ƣ}ּY=n0p#%xhWA(E7'3Y~aMtmG !XC"\jhߩ�0@#:;j ƤL=ŰxuI�/<k\Cj"eg(1h.>{{h;Ɖ *`~zKh"O=fO'L�56ERI,1u*˪’h2T 4g3L`Q3%q.(pPH NB"  ҮIL/RG$u*X*v5Dwd|Z9a*:EBEbqzzmMYf+p4J} rTMf!  Ժ"ˁAJ*,iZ<b2 $ZV?mٰwExxvBՅ*#J)qtAڠVyH5 ִ�>㫟hK7oD _#Ώ%B0Fzi1r=VS0`C�W )#n(&WBI)aBP~ݭ`ݽB=&`? ~fE i((6 ːC^/qT [j9enpkNOdȶvzrtlnJYK�S<낰*A_!. |Aoћcko_(Iu46&Uv㾄.e;ؾw/Pb' ̼0~<;4Iđ4C{e6~#%]!~_T;-^X7Sv 12(`hD$OҹtW3O#KUAQUHœF8$l?}{Lq@B +B#PrL.#MG{MHHd @!XCc:G/�g3I@�{3hv*}o&;Z&<@E 6 J-BUH i;x}=o j v r6[F-JtmR�$Zݑ=k R$3*ՇP$P3ЂCj-Ⱥ+ �%eLH8^MZo{:gdAW뀿7B%$Zd{U"4 b?vDpȕ8 0@Qa��c$ Xs/\6�ZZ۸9 6Ozጇ'{%TV}UhdȁJ$ ]_3ˮpuvɍq-kq Pc͂kq$p`o=מp@D !Bw}Ή�[c!,8#Pɧ۲Zr>Ŭ.w3:/g%+L/^?eloʳK?.(T<gQ(h9}mW]|X :Mr21w^{יʟlTSK%x\uo߳7+]':3g$AVgK{^{dž~rth$ &[c32'!R"D{o`(&cBI %'mN~ _n3lԁo4i8a;\tK! `kÜ8r||t"Ip<vCzrĄ Q ~lc |M[�08J{W\!%S+ ah$_D]�._s+c3L7OtHAD &tA٢PIZ?\zm<onlTlE# q$@Oħ Pͫ,bziy#7S| FF>AqdO'@Qh36 S*ENU@߇Ϧ�&El׎ >+ Ԙ$z:;F́?ERB�HQTkiy#)9>IK}4t&MW=m)K(@lyO{Gۋ ęlMkP|hg: ;q}}:; nt#A|\j&ÿ zWf+g}?~/-'E%����IENDB`����������������������������������������������������������������������������������������������apport-2.20.11/data/icons/64x64/mimetypes/����������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�014720� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/64x64/mimetypes/text-x-apport.png�����������������������������������������0000777�0000000�0000000�00000000000�13562354544�023346� 2../apps/apport.png����������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/scalable/�����������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�013657� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/scalable/apps/������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�014622� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/scalable/apps/apport.svg��������������������������������������������������0000664�0000000�0000000�00000103325�13562354544�016654� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg3675" height="64" width="64" version="1.0" inkscape:version="0.48.4 r9939" sodipodi:docname="apport.svg" inkscape:export-filename="/home/vishnoo/Desktop/apport-64.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" inkscape:window-height="776" id="namedview24" showgrid="false" inkscape:zoom="1" inkscape:cx="46.659602" inkscape:cy="21.712651" inkscape:window-x="0" inkscape:window-y="24" inkscape:window-maximized="1" inkscape:current-layer="layer3" inkscape:snap-global="true"> <inkscape:grid type="xygrid" id="grid3008" empspacing="5" visible="true" enabled="true" snapvisiblegridlinesonly="true" /> </sodipodi:namedview> <metadata id="metadata29"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title /> </cc:Work> </rdf:RDF> </metadata> <defs id="defs3677"> <linearGradient id="linearGradient2407" y2="9.7258072" gradientUnits="userSpaceOnUse" x2="62.673725" gradientTransform="matrix(2.1154,0,0,2.1153,-155.05899,29.606272)" y1="-15.329741" x1="62.673725"> <stop id="stop4875" style="stop-color:#fff" offset="0" /> <stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1" /> </linearGradient> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3867-0" cx="35.589161" cy="40.983368" fx="35.589161" fy="40.983368" r="2.2073171" gradientTransform="matrix(3.8930213,0.27563995,-0.10971091,1.5523012,-98.391101,-32.318405)" gradientUnits="userSpaceOnUse" /> <radialGradient id="radialGradient2410-3" gradientUnits="userSpaceOnUse" cy="3.9898655" cx="24.756285" gradientTransform="matrix(-3.142937e-8,2.0591264,-1.8630191,-2.8436097e-8,-16.045795,-47.797048)" r="20.396999" fx="24.756285" fy="3.9898655"> <stop id="stop2778-1" style="stop-color:#8bd0ea;stop-opacity:1" offset="0" /> <stop id="stop2780-4" style="stop-color:#19b6ee;stop-opacity:1" offset=".26238" /> <stop id="stop2782-8" style="stop-color:#3b90af;stop-opacity:1" offset="0.80952388" /> <stop id="stop2784-8" style="stop-color:#195870;stop-opacity:1" offset="1" /> </radialGradient> <linearGradient inkscape:collect="always" xlink:href="#linearGradient2412-9" id="linearGradient3857-3" x1="33.692677" y1="41.690662" x2="45.269791" y2="44.260967" gradientUnits="userSpaceOnUse" /> <linearGradient id="linearGradient2412-9" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(0.95844,0,0,0.95844,-46.481472,-0.82322829)" y1="44.98" x1="18.379"> <stop offset="0" style="stop-color:#409fc2;stop-opacity:1;" id="stop3839-7" /> <stop id="stop2790-7" style="stop-color:#1f566a;stop-opacity:1;" offset="1" /> </linearGradient> <linearGradient id="linearGradient2407-9" y2="9.7258072" gradientUnits="userSpaceOnUse" x2="62.673725" gradientTransform="matrix(2.1154,0,0,2.1153,-155.05899,29.606272)" y1="-15.329741" x1="62.673725"> <stop id="stop4875-7" style="stop-color:#ffffff;stop-opacity:0;" offset="0" /> <stop id="stop4877-7" style="stop-color:#ffffff;stop-opacity:1;" offset="1" /> </linearGradient> <radialGradient r="23" fy="20.471872" fx="23.927731" cy="20.471872" cx="23.927731" gradientTransform="matrix(2.8203223,0.11664895,-0.11931666,2.8848205,-31.744092,-54.138923)" gradientUnits="userSpaceOnUse" id="radialGradient3919" xlink:href="#linearGradient2412-9" inkscape:collect="always" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient4016" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.6882933,0.15835816,-0.12479555,2.1185315,-32.659897,-31.024342)" cx="26.513241" cy="15.85399" fx="26.513241" fy="15.85399" r="23" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3815" cx="9.2778931" cy="33.201191" fx="9.2778931" fy="33.201191" r="5.2222314" gradientTransform="matrix(2.2906019,-0.91624054,0.28252609,0.70631586,-21.386222,17.902659)" gradientUnits="userSpaceOnUse" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3823" cx="7.1243887" cy="10.870715" fx="7.1243887" fy="10.870715" r="6.3095975" gradientTransform="matrix(2.4336863,2.1294763,-0.81842926,0.93534803,-2.1465105,-16.093392)" gradientUnits="userSpaceOnUse" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3831" cx="20.311569" cy="41.414787" fx="20.311569" fy="41.414787" r="2.7969415" gradientTransform="matrix(1.8310388,0.57822101,-1.5825284,5.0113579,48.660374,-176.84627)" gradientUnits="userSpaceOnUse" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3839" cx="41.541332" cy="33.765697" fx="41.541332" fy="33.765697" r="5.2667422" gradientTransform="matrix(0.70090276,-1.101419,3.0815227,1.9609695,-89.98567,13.131021)" gradientUnits="userSpaceOnUse" /> <radialGradient inkscape:collect="always" xlink:href="#linearGradient2407-9" id="radialGradient3859" cx="23.997488" cy="23.999582" fx="23.997488" fy="23.999582" r="22.051479" gradientTransform="matrix(1.0370716,-1.9938562e-8,1.9938556e-8,1.0370718,-0.88700369,-0.88939117)" gradientUnits="userSpaceOnUse" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3875" cx="8.979084" cy="24.005474" fx="8.979084" fy="24.005474" r="19.510559" gradientTransform="matrix(0.3781073,-0.03781074,0.01551239,0.15512396,4.7407913,19.140165)" gradientUnits="userSpaceOnUse" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3889" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.03057406,-0.15287027,0.37810725,0.0756215,29.773166,29.0027)" cx="44.621208" cy="33.802101" fx="44.621208" fy="33.802101" r="19.510559" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3891" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.01369288,-0.15062181,0.41591809,-0.03781072,37.017298,23.919886)" cx="43.91824" cy="18.037945" fx="43.91824" fy="18.037945" r="19.510559" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3893" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.08350997,-0.06680801,0.15124296,-0.18905369,41.391683,11.108112)" cx="38.75428" cy="3.9602799" fx="38.75428" fy="3.9602799" r="19.510559" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3896" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.07562152,0.52935044,-0.18715352,-0.02673625,31.586834,-12.566772)" cx="29.901777" cy="-3.078552" fx="29.901777" fy="-3.078552" r="19.510559" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3898" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.12483269,0.37449815,-0.11343216,0.03781074,20.029026,-1.508239)" cx="26.661398" cy="0.83609062" fx="26.661398" fy="0.83609062" r="19.510559" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient2407" id="linearGradient3907" x1="21.049274" y1="-7.7215734" x2="22.524693" y2="12.93427" gradientUnits="userSpaceOnUse" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient2407" id="linearGradient3915" x1="37.278862" y1="-6.9838648" x2="37.278862" y2="10.721144" gradientUnits="userSpaceOnUse" /> <radialGradient inkscape:collect="always" xlink:href="#radialGradient2410-3" id="radialGradient3920" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.91077468,-0.4557367,0.43511615,0.86956521,3.0189575,21.775824)" cx="28.858229" cy="29.18232" fx="28.858229" fy="29.18232" r="23" /> </defs> <g inkscape:groupmode="layer" id="layer3" inkscape:label="plain" style="display:inline" transform="translate(0,16)"> <g id="g3029"> <path sodipodi:nodetypes="zzzzzzszszzzzzzzszazzzzzzzsszzzzaszssssszsz" inkscape:connector-curvature="0" id="path4007" d="m 49.83904,13.823397 c 0,1.038914 13.859579,-0.770535 12.576817,4.385741 -1.282757,5.156275 -10.26207,-2.578137 -11.54483,-1.289071 -1.282758,1.289071 -1.730004,-0.197407 -2.331938,0.741205 -0.601932,0.938615 0.650832,1.615004 1.373223,3.882021 0.72239,2.26702 15.543937,4.135173 11.942149,10.816564 -3.601786,6.681391 -11.260332,-9.446801 -17.768605,-7.441228 -1.85292,0.57099 -2.516252,2.466285 -3.446977,3.66217 -0.93072,1.195888 4.15142,5.563282 1.834242,7.498885 -1.488287,1.243206 -1.585375,-5.517089 -4.119131,-6.215962 -2.533757,-0.698875 -5.618062,0.791202 -6.90082,2.08027 -1.282762,1.289072 1.489156,14.23887 -5.705856,14.549989 -7.19501,0.31112 1.708201,-11.561729 2.476768,-15.646162 C 28.992651,26.763386 27.78572,25.73823 26.8517,25.133335 25.917683,24.52844 24.537827,22.950588 21.559513,23.780237 18.581199,24.609887 11.060524,36.753832 7.7298613,31.173458 4.3991998,25.593083 13.460207,24.228044 19.178124,22.838633 c 1.161162,-0.282156 1.408227,-3.297801 1.408227,-3.814365 0,-0.516561 0.275197,-1.54204 -0.09826,-2.155709 C 19.973326,16.022658 20.073683,15.048832 17.917623,15.393512 15.761556,15.738195 7.2427519,19.94207 8.4811356,14.578382 9.7195198,9.2146946 14.762839,14.311857 17.755599,13.39302 20.74836,12.474179 21.39423,10.292853 21.996164,9.3542388 22.598103,8.4156256 17.127732,6.1122246 17.475933,5.7623137 17.824142,5.4123973 -2.8108491,1.5985073 2.3201874,-6.1649431 7.4512253,-13.928394 17.872111,1.0957287 19.319069,3.0213573 20.766027,4.9469848 29.314228,7.7242465 30.693453,0.81923484 31.144736,-1.4400806 25.030089,-7.9159066 28.917512,-9.4311914 c 5.2755,-2.0563436 4.062497,8.3546198 4.60535,9.48675791 0.542852,1.13213669 2.220276,2.19525449 4.063403,-1.74558461 1.843128,-3.9408376 -1.801957,-13.9853589 3.329081,-12.6962889 5.131036,1.289068 -1.073158,9.1702764 -1.279553,12.3260576 -0.2064,3.155782 0.815355,2.91277474 2.046318,3.2910658 1.734852,0.5331442 3.463798,-0.38143796 4.972222,-2.22392824 2.12254,-2.59262086 4.232175,-9.91224316 7.269311,-6.93380056 3.037137,2.9784428 -4.423747,4.6520992 -5.057765,7.64522575 -0.253001,1.19438041 1.717028,0.1767032 1.977548,1.63159425 0.204125,1.1399727 -1.298839,0.9801569 -1.41587,2.492732 -0.02061,0.2666149 0.2972,2.3374868 1.920088,2.2728001 3.378653,-0.1346731 9.363128,-3.7661543 9.675627,0.3805989 0.288457,3.8276474 -8.969901,0.6397541 -10.047322,1.0438969 -1.077418,0.4041428 0.332651,1.1053446 0.645974,2.7385615 0.21148,1.102349 -1.782884,2.505993 -1.782884,3.5449 z" style="fill:url(#radialGradient4016);fill-opacity:1;stroke:url(#radialGradient3919);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> <path sodipodi:nodetypes="csssssssccccccc" inkscape:connector-curvature="0" transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" style="opacity:1;fill:url(#radialGradient3823);stroke:none;stroke-width:0.73770857000000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline;fill-opacity:1" d="M 14,14.9375 C 13.420176,14.165864 11.268745,11.106267 8.84375,8.96875 7.6312526,7.8999917 6.3631229,7.1116844 5.34375,6.90625 4.3243771,6.7008156 3.5893276,6.9023484 2.78125,8.125 2.3865842,8.7221444 2.2762397,9.1714951 2.3125,9.59375 c 0.03626,0.422255 0.2251105,0.838147 0.59375,1.28125 0.737279,0.886205 2.1861617,1.769708 3.78125,2.46875 1.5950883,0.699042 3.338296,1.241329 4.65625,1.625 0.658977,0.191836 1.19592,0.3525 1.59375,0.46875 0.198915,0.05813 0.35935,0.103703 0.5,0.15625 0.07033,0.02627 0.13001,0.0511 0.25,0.125 0.06,0.03695 0.14846,0.045 0.28125,0.25 0.0097,0.01502 0.02145,0.04492 0.03125,0.0625 0.05052,0.03584 0.08519,0.06198 0.1875,0.125 z" id="path3803" /> <path sodipodi:nodetypes="cccccssscsssc" inkscape:connector-curvature="0" style="opacity:1;fill:url(#radialGradient3815);stroke:none;stroke-width:0.73770857000000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline;fill-opacity:1" d="m 15.78125,28.96875 c -0.11626,0.202685 -0.411022,0.329846 -0.625,0.5 0.293498,-0.200601 0.596044,-0.404883 0.9375,-0.5 z m -1.1875,0.90625 c -2.125459,0.512002 -4.7472321,1.010548 -6.4375,1.8125 -0.8608332,0.408424 -1.4105079,0.885098 -1.625,1.3125 -0.2144921,0.427402 -0.241318,0.905711 0.28125,1.78125 0.2384937,0.399585 0.4349675,0.553046 0.625,0.625 0.1900325,0.07195 0.4208646,0.06695 0.75,-0.03125 0.6582708,-0.196401 1.6109081,-0.883036 2.5625,-1.75 0.951592,-0.866964 1.925716,-1.903618 2.8125,-2.78125 0.373431,-0.369577 0.693123,-0.671107 1.03125,-0.96875 z" id="path3807" transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" /> <path sodipodi:nodetypes="cssccssssscc" inkscape:connector-curvature="0" id="path3801" d="m 22.03125,35.125 c -0.181901,0.966684 -0.724506,2.06189 -1.34375,3.3125 -0.619244,1.25061 -1.337023,2.624546 -1.84375,3.84375 -0.506727,1.219204 -0.760832,2.303346 -0.6875,2.8125 0.03667,0.254577 0.09482,0.321645 0.21875,0.40625 0.123931,0.08461 0.414327,0.211474 0.96875,0.1875 1.078058,-0.04662 1.629192,-0.480917 2.09375,-1.25 0.464558,-0.769083 0.744869,-1.913943 0.875,-3.125 0.130131,-1.211057 0.130654,-2.480197 0.15625,-3.53125 0.0128,-0.525526 0.0096,-0.993697 0.0625,-1.40625 0.0529,-0.412553 0.05501,-0.802971 0.46875,-1.21875 z" style="opacity:1;fill:url(#radialGradient3831);stroke:none;stroke-width:0.73770857000000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline;fill-opacity:1" transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" /> <path sodipodi:nodetypes="cssssssscc" inkscape:connector-curvature="0" transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" style="opacity:1;fill:url(#radialGradient3839);stroke:none;stroke-width:0.73770857000000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline;fill-opacity:1" d="m 37.0625,30.84375 c 1.341462,0.890495 2.615284,2.111239 3.78125,3.1875 1.165966,1.076261 2.255127,1.979294 3,2.28125 0.372437,0.150978 0.600905,0.158301 0.78125,0.09375 0.180345,-0.06455 0.417119,-0.217187 0.6875,-0.71875 0.544811,-1.010636 0.386168,-1.562385 -0.125,-2.21875 -0.511168,-0.656365 -1.533337,-1.31461 -2.71875,-1.875 -1.185413,-0.56039 -2.505173,-1.015945 -3.59375,-1.46875 -0.544288,-0.226402 -1.025786,-0.471537 -1.4375,-0.71875 -1.634055,-0.980097 -2.371764,0.49532 -0.375,1.4375 z" id="path3799" /> <path transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" sodipodi:nodetypes="csscsssssc" inkscape:connector-curvature="0" id="path3796" d="m 38.6875,23.8125 c 0.383561,0.0801 0.748135,0.225839 1.15625,0.40625 0.81623,0.360822 1.747828,0.852987 2.65625,1.25 0.908422,0.397013 1.787922,0.667229 2.3125,0.65625 0.262289,-0.0055 0.425359,-0.04373 0.53125,-0.125 0.105891,-0.08127 0.195982,-0.219751 0.28125,-0.5625 0.07774,-0.312485 0.05086,-0.451067 -0.03125,-0.59375 -0.08211,-0.142683 -0.27349,-0.337036 -0.59375,-0.5 -0.64052,-0.325927 -1.761592,-0.5437 -2.9375,-0.65625 -1.175908,-0.11255 -2.381268,-0.114949 -3.34375,-0.15625" style="fill:url(#radialGradient3889);fill-opacity:1;stroke:none;display:inline" /> <path style="fill:url(#radialGradient3891);fill-opacity:1;stroke:none;display:inline" d="m 44.25,16.4375 c -0.212548,-0.07795 -0.714604,-0.106091 -1.375,0.03125 -0.792793,0.164875 -1.741107,0.470428 -2.6875,0.71875 0.639154,0.117388 1.333722,0.236565 2,0.3125 0.843818,0.09617 1.620009,0.0873 2.03125,-0.03125 0.20562,-0.05927 0.284341,-0.121684 0.3125,-0.15625 0.02816,-0.03457 0.07704,-0.0571 0.0625,-0.25 -0.04221,-0.56007 -0.131202,-0.547049 -0.34375,-0.625 z" id="path3877" inkscape:connector-curvature="0" sodipodi:nodetypes="sscscccs" transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" /> <path transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" sodipodi:nodetypes="ssscsscsss" inkscape:connector-curvature="0" id="path3879" d="M 39.1875,6.65625 C 39.113208,6.6395226 39.079478,6.6356061 38.96875,6.6875 38.747295,6.7912879 38.337671,7.2053779 37.9375,7.8125 37.406283,8.6184399 36.836765,9.6307037 36.28125,10.59375 36.502339,10.331463 36.742066,10.092302 37,9.875 37.605584,9.3648138 38.29482,8.9088926 38.84375,8.5 39.39268,8.0911074 39.786997,7.6930922 39.875,7.5 39.919,7.403454 39.89025,7.3732034 39.875,7.3125 39.85975,7.251797 39.83078,7.1393063 39.625,6.9375 39.422347,6.7387632 39.261792,6.6729774 39.1875,6.65625 z" style="fill:url(#radialGradient3893);fill-opacity:1;stroke:url(#linearGradient3915);display:inline" /> <path style="fill:url(#radialGradient3896);fill-opacity:1;stroke:none;display:inline" d="m 29.75,2.34375 c -0.147475,0.059359 -0.302407,0.2525213 -0.40625,0.84375 -0.103843,0.5912287 -0.09972,1.4625492 -0.0625,2.40625 0.0457,1.1584506 0.08932,2.3791166 0,3.5625 0.133659,-0.3559474 0.176276,-0.6821726 0.34375,-1.0625 0.398688,-0.9054045 0.862494,-1.8702979 1.1875,-2.75 0.325006,-0.8797021 0.471017,-1.6683226 0.40625,-2.125 C 31.153983,2.7620726 31.091095,2.5861542 30.375,2.40625 29.999336,2.3118721 29.825645,2.3133022 29.75,2.34375 z" id="path3881" inkscape:connector-curvature="0" sodipodi:nodetypes="ssscsssss" transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" /> <path transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" sodipodi:nodetypes="csssssscsc" inkscape:connector-curvature="0" id="path3883" d="M 24.1875,11.71875 C 24.1638,11.405243 24.17318,11.029626 24.15625,10.625 24.122383,9.8157486 24.051804,8.8479277 23.90625,8 23.760696,7.1520723 23.495624,6.4309551 23.21875,6.125 23.080313,5.9720224 22.984557,5.8731515 22.8125,5.84375 c -0.172057,-0.029401 -0.399358,0.038642 -0.78125,0.1875 -0.232013,0.090437 -0.32685,0.1735419 -0.375,0.25 -0.04815,0.076458 -0.06712,0.1755602 -0.0625,0.375 0.0092,0.3988796 0.216057,1.0786371 0.5625,1.8125 0.346443,0.7338629 0.805615,1.5097983 1.15625,2.25" style="fill:url(#radialGradient3898);fill-opacity:1;stroke:url(#linearGradient3907);display:inline" /> <path style="fill:url(#radialGradient3875);fill-opacity:1;stroke:none;display:inline" d="m 8.125,22 c -0.2280428,0.09557 -0.4618485,0.283008 -0.65625,1.125 -0.093533,0.405109 -0.093206,0.64707 -0.0625,0.75 0.030706,0.10293 0.046239,0.113497 0.125,0.15625 0.1575226,0.08551 0.776197,0.139649 1.53125,0 0.755053,-0.139649 1.614634,-0.427553 2.40625,-0.6875 C 12.016287,23.163953 12.441528,23.05724 12.875,22.9375 12.365072,22.9362 11.874809,22.85459 11.40625,22.71875 10.675108,22.506779 9.9671828,22.224172 9.375,22.0625 8.7828172,21.900828 8.3530428,21.904428 8.125,22 z" id="path3885" inkscape:connector-curvature="0" sodipodi:nodetypes="ssscsscsss" transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" /> <path style="fill:url(#radialGradient3920);fill-opacity:1;stroke:url(#radialGradient3919);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" d="M 40.638879,28.580799 C 39.708159,29.776687 45.317178,35.064397 43,37 41.511713,38.243206 40.887746,30.562595 38.35399,29.863722" id="path3917" inkscape:connector-curvature="0" sodipodi:nodetypes="csc" /> <path transform="matrix(1.355549,0,0,1.3555486,-0.53332353,-16.533032)" inkscape:href="#path3004-3" d="m 29.75,2.34375 c -0.147475,0.059359 -0.302407,0.2525213 -0.40625,0.84375 -0.103843,0.5912287 -0.09972,1.4625492 -0.0625,2.40625 0.0457,1.1584506 0.08932,2.3791166 0,3.5625 0.133659,-0.3559474 0.176276,-0.6821726 0.34375,-1.0625 0.398688,-0.9054045 0.862494,-1.8702979 1.1875,-2.75 0.325006,-0.8797021 0.471017,-1.6683226 0.40625,-2.125 C 31.153983,2.7620726 31.091095,2.5861542 30.375,2.40625 29.999336,2.3118721 29.825645,2.3133022 29.75,2.34375 z m -6.9375,3.5 c -0.172057,-0.029401 -0.399358,0.038642 -0.78125,0.1875 -0.232013,0.090437 -0.32685,0.1735419 -0.375,0.25 -0.04815,0.076458 -0.06712,0.1755602 -0.0625,0.375 0.0092,0.3988796 0.216057,1.0786371 0.5625,1.8125 0.346443,0.7338629 0.805615,1.5097983 1.15625,2.25 0.350635,0.740202 0.699241,1.408963 0.53125,2.25 -0.288348,1.4436 -1.005043,2.500298 -1.9375,3.125 -0.932457,0.624702 -2.024237,0.842471 -3.0625,0.8125 C 17.805487,16.876279 16.810023,16.597556 15.96875,16.25 15.127477,15.902444 14.443004,15.527055 14,14.9375 13.420176,14.165864 11.268745,11.106267 8.84375,8.96875 7.6312526,7.8999917 6.3631229,7.1116844 5.34375,6.90625 4.3243771,6.7008156 3.5893276,6.9023484 2.78125,8.125 2.3865842,8.7221444 2.2762397,9.1714951 2.3125,9.59375 c 0.03626,0.422255 0.2251105,0.838147 0.59375,1.28125 0.737279,0.886205 2.1861617,1.769708 3.78125,2.46875 1.5950883,0.699042 3.338296,1.241329 4.65625,1.625 0.658977,0.191836 1.19592,0.3525 1.59375,0.46875 0.198915,0.05813 0.35935,0.103703 0.5,0.15625 0.07033,0.02627 0.13001,0.0511 0.25,0.125 0.06,0.03695 0.14846,0.045 0.28125,0.25 0.0097,0.01502 0.02145,0.04492 0.03125,0.0625 0.05052,0.03584 0.08519,0.06198 0.1875,0.125 0.306934,0.189047 0.775305,0.469752 1.25,0.75 0.474695,0.280248 0.955878,0.550897 1.34375,0.875 0.193936,0.162051 0.37885,0.338061 0.53125,0.59375 0.1524,0.255689 0.25021,0.766092 0,1.15625 -0.267332,0.416859 -1.019599,2.38635 -3.34375,3.21875 0.245018,-0.0141 0.502479,-0.07228 0.71875,-0.03125 0.357156,0.06776 0.683382,0.272369 0.90625,0.5 0.445737,0.455263 0.493255,0.834858 0.59375,1 0.281498,0.462558 0.294805,0.928356 0.28125,1.28125 -0.01356,0.352894 -0.0625,0.659071 -0.0625,0.71875 0,0.338778 -0.03767,0.968589 -0.21875,1.6875 -0.09054,0.359456 -0.206299,0.713911 -0.40625,1.0625 -0.11626,0.202685 -0.411022,0.329846 -0.625,0.5 0.293498,-0.200601 0.596044,-0.404883 0.9375,-0.5 2.518899,-0.701673 4.089636,0.807749 4.53125,1.09375 0.38468,0.249128 0.991526,0.707803 1.3125,1.53125 0.320974,0.823447 0.394349,1.933764 0.09375,3.53125 -0.181901,0.966684 -0.724506,2.06189 -1.34375,3.3125 -0.619244,1.25061 -1.337023,2.624546 -1.84375,3.84375 -0.506727,1.219204 -0.760832,2.303346 -0.6875,2.8125 0.03667,0.254577 0.09482,0.321645 0.21875,0.40625 0.123931,0.08461 0.414327,0.211474 0.96875,0.1875 1.078058,-0.04662 1.629192,-0.480917 2.09375,-1.25 0.464558,-0.769083 0.744869,-1.913943 0.875,-3.125 0.130131,-1.211057 0.130654,-2.480197 0.15625,-3.53125 0.0128,-0.525526 0.0096,-0.993697 0.0625,-1.40625 0.0529,-0.412553 0.05501,-0.802971 0.46875,-1.21875 0.594603,-0.597529 1.498051,-1.131808 2.53125,-1.5 1.033199,-0.368192 2.213686,-0.539069 3.375,-0.21875 0.252896,0.06976 0.430204,0.204934 0.625,0.34375 -0.04006,-0.299268 -0.06021,-0.681713 0.1875,-1 0.543992,-0.698976 1.137253,-2.41399 2.9375,-2.96875 1.540025,-0.47457 3.064788,0.140755 4.40625,1.03125 1.341462,0.890495 2.615284,2.111239 3.78125,3.1875 1.165966,1.076261 2.255127,1.979294 3,2.28125 0.372437,0.150978 0.600905,0.158301 0.78125,0.09375 0.180345,-0.06455 0.417119,-0.217187 0.6875,-0.71875 0.544811,-1.010636 0.386168,-1.562385 -0.125,-2.21875 -0.511168,-0.656365 -1.533337,-1.31461 -2.71875,-1.875 -1.185413,-0.56039 -2.505173,-1.015945 -3.59375,-1.46875 -0.544288,-0.226402 -1.025786,-0.471537 -1.4375,-0.71875 -0.411714,-0.247213 -0.814683,-0.480935 -1,-1.0625 -0.231197,-0.725545 -0.541081,-1.159463 -0.8125,-1.625 -0.13571,-0.232769 -0.275326,-0.501274 -0.34375,-0.84375 -0.06842,-0.342476 0.01153,-0.770622 0.21875,-1.09375 0.189947,-0.296191 0.564121,-0.597456 0.9375,-0.625 0.373379,-0.02754 0.576157,0.07102 0.65625,0.09375 0.08009,0.02273 0.04441,0.02815 0.03125,0.03125 -0.01316,0.0031 0.02429,-0.02349 0.1875,-0.1875 0.432789,-0.434917 0.991439,-0.361354 1.375,-0.28125 0.383561,0.0801 0.748135,0.225839 1.15625,0.40625 0.81623,0.360822 1.747828,0.852987 2.65625,1.25 0.908422,0.397013 1.787922,0.667229 2.3125,0.65625 0.262289,-0.0055 0.425359,-0.04373 0.53125,-0.125 0.105891,-0.08127 0.195982,-0.219751 0.28125,-0.5625 0.07774,-0.312485 0.05086,-0.451067 -0.03125,-0.59375 -0.08211,-0.142683 -0.27349,-0.337036 -0.59375,-0.5 -0.64052,-0.325927 -1.761592,-0.5437 -2.9375,-0.65625 -1.175908,-0.11255 -2.381268,-0.114949 -3.34375,-0.15625 -0.481241,-0.02065 -0.900799,-0.06992 -1.25,-0.125 -0.1746,-0.02754 -0.333651,-0.03734 -0.53125,-0.125 -0.0988,-0.04383 -0.214942,-0.116436 -0.34375,-0.25 -0.128808,-0.133564 -0.25,-0.372224 -0.25,-0.625 0,-0.908898 0.538356,-1.336947 0.875,-1.78125 0.168322,-0.222151 0.303407,-0.423725 0.375,-0.5625 0.07159,-0.138775 0.05034,-0.188387 0.0625,-0.125 -0.07704,-0.401587 -0.303723,-0.705815 -0.53125,-1.09375 -0.113764,-0.193968 -0.29941,-0.427024 -0.25,-0.90625 0.0247,-0.239613 0.17897,-0.498612 0.34375,-0.65625 0.03148,-0.03011 0.06206,-0.03764 0.09375,-0.0625 -0.420281,-0.238727 -0.763861,-0.544127 -0.9375,-0.875 -0.147354,-0.280787 -0.227875,-0.555801 -0.28125,-0.78125 -0.05338,-0.225449 -0.08632,-0.285728 -0.0625,-0.59375 0.06457,-0.834623 0.653246,-1.369036 0.9375,-1.59375 0.02842,-0.02247 0.0094,-0.01287 0.03125,-0.03125 -0.03996,-0.0091 -0.03071,0.009 -0.09375,0 -0.170737,-0.02449 -0.415917,0.0018 -0.78125,-0.21875 -0.182666,-0.110274 -0.38137,-0.339825 -0.46875,-0.59375 -0.08738,-0.253925 -0.07466,-0.482557 -0.03125,-0.6875 0.06025,-0.284416 0.208653,-0.516559 0.34375,-0.75 -0.186748,0.296014 -0.329105,0.659336 -0.53125,0.90625 -0.61182,0.747318 -1.263958,1.331282 -2.03125,1.6875 -0.767292,0.356218 -1.663982,0.44442 -2.5,0.1875 -0.338162,-0.103922 -0.905294,-0.08629 -1.46875,-0.625 -0.436381,-0.417219 -0.572017,-1.07879 -0.59375,-1.90625 -0.721906,1.516883 -1.498269,2.342172 -2.46875,2.46875 -0.493213,0.06433 -0.952997,-0.101152 -1.28125,-0.34375 -0.328253,-0.242598 -0.568073,-0.560758 -0.71875,-0.875 -0.181975,-0.379515 -0.163797,-0.561493 -0.1875,-0.875 -0.0237,-0.313507 -0.01432,-0.689124 -0.03125,-1.09375 C 24.122383,9.8157486 24.051804,8.8479277 23.90625,8 23.760696,7.1520723 23.495624,6.4309551 23.21875,6.125 23.080313,5.9720224 22.984557,5.8731515 22.8125,5.84375 z m 16.375,0.8125 C 39.113208,6.6395226 39.079478,6.6356061 38.96875,6.6875 38.747295,6.7912879 38.337671,7.2053779 37.9375,7.8125 37.406283,8.6184399 36.836765,9.6307037 36.28125,10.59375 36.502339,10.331463 36.742066,10.092302 37,9.875 37.605584,9.3648138 38.29482,8.9088926 38.84375,8.5 c 0.54893,-0.4088926 0.943247,-0.8069078 1.03125,-1 0.044,-0.096546 0.01525,-0.1267966 0,-0.1875 -0.01525,-0.060703 -0.04422,-0.1731937 -0.25,-0.375 C 39.422347,6.7387632 39.261792,6.6729774 39.1875,6.65625 z M 44.25,16.4375 c -0.212548,-0.07795 -0.714604,-0.106091 -1.375,0.03125 -0.792793,0.164875 -1.741107,0.470428 -2.6875,0.71875 0.639154,0.117388 1.333722,0.236565 2,0.3125 0.843818,0.09617 1.620009,0.0873 2.03125,-0.03125 0.20562,-0.05927 0.284341,-0.121684 0.3125,-0.15625 0.02816,-0.03457 0.07704,-0.0571 0.0625,-0.25 -0.04221,-0.56007 -0.131202,-0.547049 -0.34375,-0.625 z M 8.125,22 c -0.2280428,0.09557 -0.4618485,0.283008 -0.65625,1.125 -0.093533,0.405109 -0.093206,0.64707 -0.0625,0.75 0.030706,0.10293 0.046239,0.113497 0.125,0.15625 0.1575226,0.08551 0.776197,0.139649 1.53125,0 0.755053,-0.139649 1.614634,-0.427553 2.40625,-0.6875 0.547537,-0.179797 0.972778,-0.28651 1.40625,-0.40625 -0.509928,-0.0013 -1.000191,-0.08291 -1.46875,-0.21875 C 10.675108,22.506779 9.9671828,22.224172 9.375,22.0625 8.7828172,21.900828 8.3530428,21.904428 8.125,22 z m 6.46875,7.875 c -2.125459,0.512002 -4.7472321,1.010548 -6.4375,1.8125 -0.8608332,0.408424 -1.4105079,0.885098 -1.625,1.3125 -0.2144921,0.427402 -0.241318,0.905711 0.28125,1.78125 0.2384937,0.399585 0.4349675,0.553046 0.625,0.625 0.1900325,0.07195 0.4208646,0.06695 0.75,-0.03125 0.6582708,-0.196401 1.6109081,-0.883036 2.5625,-1.75 0.951592,-0.866964 1.925716,-1.903618 2.8125,-2.78125 0.373431,-0.369577 0.693123,-0.671107 1.03125,-0.96875 z" id="path4009" style="opacity:0.33000000000000002;fill:none;stroke:url(#radialGradient3859);stroke-width:0.73770859000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;stroke-linejoin:round" xlink:href="#path3004-3" inkscape:original="M 29.4375 1.59375 C 27.397809 2.4147366 29.31473 8.3937087 28.125 10.9375 C 26.765309 13.844691 25.525468 13.085187 25.125 12.25 C 24.724533 11.414812 25.610531 3.7330179 21.71875 5.25 C 18.850964 6.3678382 23.364164 11.145784 23.03125 12.8125 C 22.013784 17.906388 15.723684 15.858053 14.65625 14.4375 C 13.588817 13.016947 5.87896 1.9290856 2.09375 7.65625 C -1.691459 13.383415 13.53813 16.179364 13.28125 16.4375 C 13.024378 16.695633 17.069055 18.401327 16.625 19.09375 C 16.180949 19.786173 15.707785 21.384664 13.5 22.0625 C 11.292215 22.740334 7.569816 18.980661 6.65625 22.9375 C 5.742684 26.894338 12.034452 23.816776 13.625 23.5625 C 15.215545 23.308227 15.120255 24.032222 15.5 24.65625 C 15.775505 25.10896 15.59375 25.837678 15.59375 26.21875 C 15.59375 26.599823 15.387848 28.823102 14.53125 29.03125 C 10.313094 30.056232 3.636693 31.07081 6.09375 35.1875 C 8.550808 39.304191 14.115373 30.36204 16.3125 29.75 C 18.509627 29.137961 19.498467 30.303764 20.1875 30.75 C 20.876534 31.196236 21.78573 31.955629 21.21875 34.96875 C 20.651772 37.981872 14.06718 46.729515 19.375 46.5 C 24.682821 46.270484 22.647447 36.700958 23.59375 35.75 C 24.540052 34.799042 26.818326 33.703186 28.6875 34.21875 C 30.556673 34.734315 30.620828 39.729624 31.71875 38.8125 C 33.428152 37.384589 29.688399 34.163466 30.375 33.28125 C 31.061602 32.399035 31.539336 31.014975 32.90625 30.59375 C 37.707458 29.114222 43.374182 40.99142 46.03125 36.0625 C 48.68832 31.13358 37.751663 29.76615 37.21875 28.09375 C 36.685836 26.421351 35.743448 25.911174 36.1875 25.21875 C 36.631551 24.526328 36.959948 25.638457 37.90625 24.6875 C 38.852552 23.736544 45.491198 29.42883 46.4375 25.625 C 47.383802 21.821172 37.15625 23.172665 37.15625 22.40625 C 37.15625 21.639838 38.624761 20.594464 38.46875 19.78125 C 38.237608 18.576413 37.205178 18.04814 38 17.75 C 38.794822 17.45186 45.619045 19.823688 45.40625 17 C 45.175715 13.940904 40.773712 16.6194 38.28125 16.71875 C 37.084033 16.76647 36.82854 15.227935 36.84375 15.03125 C 36.930083 13.91541 38.056836 14.028468 37.90625 13.1875 C 37.714063 12.114215 36.25086 12.881105 36.4375 12 C 36.905222 9.7919448 42.428021 8.540973 40.1875 6.34375 C 37.946979 4.1465269 36.378317 9.5561508 34.8125 11.46875 C 33.699723 12.827971 32.436064 13.487055 31.15625 13.09375 C 30.248158 12.814681 29.472739 13.015548 29.625 10.6875 C 29.777261 8.3594529 34.34771 2.544707 30.5625 1.59375 C 30.089349 1.4748804 29.728884 1.4764662 29.4375 1.59375 z " inkscape:radius="-0.82307136" sodipodi:type="inkscape:offset" /> <path transform="matrix(0.57127446,1.2292845,-1.2292226,0.57130322,75.999338,-25.235896)" d="m 39.048035,41.353657 c 0,0.827868 -1.211773,1.498988 -2.70657,1.498988 -1.494797,0 -2.70657,-0.67112 -2.70657,-1.498988 0,-0.827868 1.211773,-1.498988 2.70657,-1.498988 1.494797,0 2.70657,0.67112 2.70657,1.498988 z" sodipodi:ry="1.498988" sodipodi:rx="2.7065697" sodipodi:cy="41.353657" sodipodi:cx="36.341465" id="path4011" style="fill:url(#radialGradient3867-0);fill-opacity:1;stroke:url(#linearGradient3857-3);stroke-width:0.73772413000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" sodipodi:type="arc" /> </g> </g> </svg> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/scalable/mimetypes/�������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�015673� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/icons/scalable/mimetypes/text-x-apport.svg��������������������������������������0000777�0000000�0000000�00000000000�13562354544�024347� 2../apps/apport.svg����������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/is-enabled����������������������������������������������������������������������0000775�0000000�0000000�00000001240�13562354544�012724� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Check if apport reports are enabled. Exit with 0 if so, otherwise with 1. # # Copyright (c) 2011 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. set -e CONF=/etc/default/apport # defaults to enabled if not present [ -f $CONF ] || exit 0 ! grep -q '^[[:space:]]*enabled[[:space:]]*=[[:space:]]*0[[:space:]]*$' $CONF ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/iwlwifi_error_dump��������������������������������������������������������������0000775�0000000�0000000�00000003657�14416106601�014633� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # # Collect information about an iwlwifi firmware error dump. # # Copyright (c) 2014 Canonical Ltd. # Author: Seth Forshee <seth.forshee@canonical.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os, sys, re import apport, apport.fileutils from apport.hookutils import command_output if len(sys.argv) != 2: sys.exit(1) phy = os.path.basename(sys.argv[1]) sysfs_path = '/sys/kernel/debug/ieee80211/' + phy + '/iwlwifi/iwlmvm/fw_error_dump' if not os.path.exists(sysfs_path): sys.exit(1) pr = apport.Report('KernelCrash') pr.add_package(apport.packaging.get_kernel_package()) pr['Title'] = 'iwlwifi firmware error' pr.add_os_info() # Get iwl firmware version and error code from dmesg dmesg = command_output(['dmesg']) regex = re.compile('^.*iwlwifi [0-9a-fA-F:]{10}\\.[0-9a-fA-F]: Loaded firmware version: ([0-9\\.]+).*\\n.*iwlwifi [0-9a-fA-F:]{10}\\.[0-9a-fA-F]: (0x[0-9A-F]{8} \\| [A-Z_]+)', re.MULTILINE) m = regex.findall(dmesg) if m: v = m[len(m) - 1] fw_version = v[0] error_code = v[1] pr['IwlFwVersion'] = fw_version pr['IwlErrorCode'] = error_code pr['DuplicateSignature'] = 'iwlwifi:' + fw_version + ':' + error_code pr['Title'] += ': ' + error_code # Get iwl firmware dump file from debugfs try: with open(sysfs_path, 'rb') as f: pr['IwlFwDump'] = f.read() # Firmware dump could contain sensitive information pr['LaunchpadPrivate'] = 'yes' pr['LaunchpadSubscribe'] = 'canonical-kernel-team' except IOError: pass try: with apport.fileutils.make_report_file(pr) as f: pr.write(f) except IOError as e: apport.fatal('Cannot create report: ' + str(e)) ���������������������������������������������������������������������������������apport-2.20.11/data/java_uncaught_exception���������������������������������������������������������0000775�0000000�0000000�00000005126�14416105132�015607� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 '''Receive details from ApportUncaughtExceptionHandler. This generates and saves a problem report. ''' # Copyright 2010 Canonical Ltd. # Author: Matt Zimmerman <mdz@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import sys if sys.version_info.major < 3: from urlparse import urlparse urlparse # pyflakes else: from urllib.parse import urlparse def make_title(report): lines = report['StackTrace'].split('\n') message = lines[0].strip() stackframe = lines[1].strip() return '%s in %s' % (message, stackframe) def main(): from apport.packaging_impl import impl as packaging if not packaging.enabled(): return -1 # read from the JVM process a sequence of key, value delimited by null # bytes items = sys.stdin.read().split('\0') d = dict() while items: key = items.pop(0) if not items: break value = items.pop(0) d[key] = value # create report import apport.report import os report = apport.report.Report(type='Crash') # assume our parent is the JVM process report.pid = os.getppid() report.add_os_info() report.add_proc_info() # these aren't relevant because the crash was in bytecode del report['ProcMaps'] del report['ProcStatus'] report.add_user_info() # add in data which was fed to us from the JVM process for key, value in d.items(): report[key] = value # Add an ExecutablePath pointing to the file where the main class resides if 'MainClassUrl' in report: url = report['MainClassUrl'] scheme, netloc, path, params, query, fragment = urlparse(url) if scheme == 'jar': # path is then a URL to the jar file scheme, netloc, path, params, query, fragment = urlparse(path) if '!/' in path: path = path.split('!/', 1)[0] if scheme == 'file': report['ExecutablePath'] = path else: # Program at some non-file URL crashed. Give up. return report['Title'] = make_title(report) try: with apport.fileutils.make_report_file(report) as f: report.write(f) except (IOError, OSError) as e: apport.fatal('Cannot create report: ' + str(e)) if __name__ == '__main__': main() ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/kernel_crashdump����������������������������������������������������������������0000775�0000000�0000000�00000005511�14416105132�014236� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # # Collect information about a kernel oops. # # Copyright (c) 2007 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os, re, glob import apport, apport.fileutils pr = apport.Report('KernelCrash') package = apport.packaging.get_kernel_package() pr.add_package(package) pr.add_os_info() vmcore_path = os.path.join(apport.fileutils.report_dir, 'vmcore') # only accept plain files here, not symlinks; otherwise we might recursively # include the report, or similar DoS attacks if os.path.exists(vmcore_path + '.log'): try: log_fd = os.open(vmcore_path + '.log', os.O_RDONLY | os.O_NOFOLLOW) pr['VmCoreLog'] = (os.fdopen(log_fd, 'rb'),) os.unlink(vmcore_path + '.log') except OSError as e: apport.fatal('Cannot open vmcore log: ' + str(e)) if os.path.exists(vmcore_path): try: core_fd = os.open(vmcore_path, os.O_RDONLY | os.O_NOFOLLOW) pr['VmCore'] = (os.fdopen(core_fd, 'rb'),) with apport.fileutils.make_report_file(pr) as f: pr.write(f) except (IOError, OSError) as e: apport.fatal('Cannot create report: ' + str(e)) try: os.unlink(vmcore_path) except OSError: pass # huh, already gone? else: # check for kdump-tools generated dmesg in timestamped dir for dmesg_file in glob.glob(os.path.join(apport.fileutils.report_dir, '*', 'dmesg.*')): timedir = os.path.dirname(dmesg_file) timestamp = os.path.basename(timedir) if re.match('^[0-9]{12}$', timestamp): # we require the containing dir to be owned by root, to avoid users # creating a symlink to someplace else and disclosing data; we just # compare against euid here so that we can test this as non-root if os.lstat(timedir).st_uid != os.geteuid(): apport.fatal('%s has unsafe permissions, ignoring' % timedir) report_name = package + '-' + timestamp + '.crash' try: crash_report = os.path.join(apport.fileutils.report_dir, report_name) dmesg_fd = os.open(dmesg_file, os.O_RDONLY | os.O_NOFOLLOW) pr['VmCoreDmesg'] = (os.fdopen(dmesg_fd, 'rb'),) # TODO: Replace with open(..., 'xb') once we drop Python 2 support with os.fdopen(os.open(crash_report, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'wb') as f: pr.write(f) except (IOError, OSError) as e: apport.fatal('Cannot create report: ' + str(e)) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/kernel_oops���������������������������������������������������������������������0000775�0000000�0000000�00000002321�14416105132�013224� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # # Collect information about a kernel oops. # # Copyright (c) 2008 Canonical Ltd. # Author: Matt Zimmerman <mdz@canonical.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os import sys import apport.fileutils from apport import unicode_gettext as _ checksum = None if len(sys.argv) > 1: checksum = sys.argv[1] oops = sys.stdin.read() pr = apport.Report('KernelOops') pr['Failure'] = 'oops' pr['Tags'] = 'kernel-oops' pr['Annotation'] = _('Your system might become unstable ' 'now and might need to be restarted.') package = apport.packaging.get_kernel_package() pr.add_package(package) pr['SourcePackage'] = 'linux' pr['OopsText'] = oops u = os.uname() pr['Uname'] = '%s %s %s' % (u[0], u[2], u[4]) # write report try: with apport.fileutils.make_report_file(pr, uid=checksum) as f: pr.write(f) except (IOError, OSError) as e: apport.fatal('Cannot create report: ' + str(e)) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/package-hooks/������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416106601�013476� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/package-hooks/source_apport.py��������������������������������������������������0000664�0000000�0000000�00000001071�14416105132�016732� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Apport package hook for apport itself. This adds /var/log/apport.log and the file listing in /var/crash to the report. ''' # Copyright 2007 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> from glob import glob import apport.hookutils APPORT_LOG = '/var/log/apport.log' def add_info(report): apport.hookutils.attach_file_if_exists(report, APPORT_LOG, 'ApportLog') reports = glob('/var/crash/*') if reports: report['CrashReports'] = apport.hookutils.command_output( ['stat', '-c', '%a:%u:%g:%s:%y:%x:%n'] + reports) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/package-hooks/source_debian-installer.py����������������������������������������0000664�0000000�0000000�00000003562�14416105132�020651� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Apport package hook for the Debian installer. Copyright (C) 2011 Canonical Ltd. Authors: Colin Watson <cjwatson@ubuntu.com>, Brian Murray <brian@ubuntu.com>''' import os from apport.hookutils import attach_hardware, command_available, command_output, attach_root_command_outputs def add_installation_log(report, ident, name): if os.path.exists('/var/log/installer/%s' % name): f = '/var/log/installer/%s' % name elif os.path.exists('/var/log/%s' % name): f = '/var/log/%s' % name else: return if os.access(f, os.R_OK): report[ident] = (f,) else: attach_root_command_outputs(report, {ident: "cat '%s'" % f}) def add_info(report): attach_hardware(report) report['DiskUsage'] = command_output(['df']) report['MemoryUsage'] = command_output(['free']) if command_available('dmraid'): attach_root_command_outputs(report, {'DmraidSets': 'dmraid -s', 'DmraidDevices': 'dmraid -r'}) if command_available('dmsetup'): attach_root_command_outputs(report, {'DeviceMapperTables': 'dmsetup table'}) try: installer_version = open('/var/log/installer/version') for line in installer_version: if line.startswith('ubiquity '): # File these reports on the ubiquity package instead report['SourcePackage'] = 'ubiquity' break installer_version.close() except IOError: pass add_installation_log(report, 'DIPartman', 'partman') add_installation_log(report, 'DISyslog', 'syslog') if __name__ == '__main__': report = {} add_info(report) for key in report: if isinstance(report[key], type('')): print('%s: %s' % (key, report[key].split('\n', 1)[0])) else: print('%s: %s' % (key, type(report[key]))) ����������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/package-hooks/source_linux.py���������������������������������������������������0000664�0000000�0000000�00000014236�14416106601�016575� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Apport package hook for the Linux kernel. (c) 2008 Canonical Ltd. Contributors: Matt Zimmerman <mdz@canonical.com> Martin Pitt <martin.pitt@canonical.com> Brian Murray <brian@canonical.com> 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. See http://www.gnu.org/copyleft/gpl.html for the full text of the license. ''' import os.path, re import apport import apport.hookutils SUBMIT_SCRIPT = "/usr/bin/kerneloops-submit" def add_info(report, ui): # If running an upstream kernel, instruct reporter to file bug upstream abi = re.search("-(.*?)-", report['Uname']) if abi and (abi.group(1) == '999' or re.search("^0\\d", abi.group(1))): ui.information("It appears you are currently running a mainline kernel. It would be better to report this bug upstream at http://bugzilla.kernel.org/ so that the upstream kernel developers are aware of the issue. If you'd still like to file a bug against the Ubuntu kernel, please boot with an official Ubuntu kernel and re-file.") report['UnreportableReason'] = 'The running kernel is not an Ubuntu kernel' return version_signature = report.get('ProcVersionSignature', '') if not version_signature.startswith('Ubuntu ') and 'CrashDB' not in report: report['UnreportableReason'] = 'The running kernel is not an Ubuntu kernel' return # Prevent reports against the linux-meta and linux-signed families, redirect to the main package. for src_pkg in ['linux-meta', 'linux-signed']: if report['SourcePackage'].startswith(src_pkg): report['SourcePackage'] = report['SourcePackage'].replace(src_pkg, 'linux', 1) report.setdefault('Tags', '') # Tag up back ported kernel reports for easy identification if report['SourcePackage'].startswith('linux-lts-'): report['Tags'] += ' qa-kernel-lts-testing' apport.hookutils.attach_hardware(report) apport.hookutils.attach_alsa(report) apport.hookutils.attach_wifi(report) apport.hookutils.attach_file(report, '/proc/fb', 'ProcFB') staging_drivers = re.findall("(\\w+): module is from the staging directory", report['CurrentDmesg']) if staging_drivers: staging_drivers = list(set(staging_drivers)) report['StagingDrivers'] = ' '.join(staging_drivers) report['Tags'] += ' staging' # Only if there is an existing title prepend '[STAGING]'. # Changed to prevent bug titles with just '[STAGING] '. if report.get('Title'): report['Title'] = '[STAGING] ' + report.get('Title') apport.hookutils.attach_file_if_exists(report, "/etc/initramfs-tools/conf.d/resume", key="HibernationDevice") uname_release = os.uname()[2] lrm_package_name = 'linux-restricted-modules-%s' % uname_release lbm_package_name = 'linux-backports-modules-%s' % uname_release apport.hookutils.attach_related_packages(report, [lrm_package_name, lbm_package_name, 'linux-firmware']) if ('Failure' in report and report['Failure'] == 'oops' and 'OopsText' in report and os.path.exists(SUBMIT_SCRIPT)): # tag kerneloopses with the version of the kerneloops package apport.hookutils.attach_related_packages(report, ['kerneloops-daemon']) oopstext = report['OopsText'] dupe_sig1 = None dupe_sig2 = None for line in oopstext.splitlines(): if line.startswith('BUG:'): bug = re.compile('at [0-9a-f]+$') dupe_sig1 = bug.sub('at location', line) rip = re.compile('^[RE]?IP:') if re.search(rip, line): loc = re.compile('\\[<[0-9a-f]+>\\]') dupe_sig2 = loc.sub('location', line) if dupe_sig1 and dupe_sig2: report['DuplicateSignature'] = '%s %s' % (dupe_sig1, dupe_sig2) # it's from kerneloops, ask the user whether to submit there as well if ui: # Some OopsText begin with "--- [ cut here ] ---", so remove it oopstext = re.sub("---.*\n", "", oopstext) first_line = re.match(".*\n", oopstext) ip = re.search("(R|E)?IP\\:.*\n", oopstext) kernel_driver = re.search("(R|E)?IP(:| is at) .*\\[(.*)\\]\n", oopstext) call_trace = re.search("Call Trace(.*\n){,10}", oopstext) oops = '' if first_line: oops += first_line.group(0) if ip: oops += ip.group(0) if call_trace: oops += call_trace.group(0) if kernel_driver: report['Tags'] += ' kernel-driver-%s' % kernel_driver.group(3) # 2012-01-13 - disable submission question as kerneloops.org is # down # if ui.yesno("This report may also be submitted to " # "http://kerneloops.org/ in order to help collect aggregate " # "information about kernel problems. This aids in identifying " # "widespread issues and problematic areas. A condensed " # "summary of the Oops is shown below. Would you like to submit " # "information about this crash to kerneloops.org?" # "\n\n%s" % oops): # text = report['OopsText'] # proc = subprocess.Popen(SUBMIT_SCRIPT, stdin=subprocess.PIPE) # proc.communicate(text) elif 'Failure' in report and ('resume' in report['Failure'] or 'suspend' in report['Failure']): crash_signature = report.crash_signature() if crash_signature: report['DuplicateSignature'] = crash_signature if report.get('ProblemType') == 'Package': # in case there is a failure with a grub script apport.hookutils.attach_related_packages(report, ['grub-pc']) if __name__ == '__main__': r = apport.Report() r.add_proc_info() r.add_os_info() r['ProcVersionSignature'] = 'Ubuntu 3.4.0' add_info(r, None) for k, v in r.items(): print('%s: %s' % (k, v)) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/package-hooks/source_ubiquity.py������������������������������������������������0000664�0000000�0000000�00000017104�14416106601�017306� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Apport package hook for the ubiquity live CD installer. Copyright (C) 2009 Canonical Ltd. Authors: Colin Watson <cjwatson@ubuntu.com>, Brian Murray <brian@ubuntu.com>''' import apport.hookutils import os.path import re def add_installation_log(report, ident, name): f = False for try_location in ('/var/log/installer/%s', '/var/log/%s', '/var/log/upstart/%s'): if os.path.exists(try_location % name): f = try_location % name break if not f: return if os.access(f, os.R_OK): with open(f, 'rb') as f: report[ident] = f.read().decode('UTF-8', 'replace') elif os.path.exists(f): apport.hookutils.attach_root_command_outputs(report, {ident: "cat '%s'" % f}) if isinstance(report[ident], bytes): try: report[ident] = report[ident].decode('UTF-8', 'replace') except (UnicodeDecodeError, KeyError): pass def prepare_duplicate_signature(syslog, collect_grub, collect_trace): collect = '' for line in syslog.split('\n'): if collect_grub: if 'grub-installer:' in line and collect == "": collect = ' '.join(line.split(' ')[4:]) + '\n' continue elif 'grub-installer:' in line and collect != "": collect += ' '.join(line.split(' ')[4:]) + '\n' continue if not collect_trace and collect != '': return collect if 'Traceback (most recent call last):' in line and \ collect_grub: collect += ' '.join(line.split(' ')[5:]) + '\n' continue if 'Traceback (most recent call last):' in line and \ not collect_grub: collect = ' '.join(line.split(' ')[5:]) + '\n' continue if len(line.split(' ')[5:]) == 1 and 'Traceback' in collect: if collect != '': return collect if 'Traceback' not in collect: continue collect += ' '.join(line.split(' ')[5:]) + '\n' def add_info(report, ui): add_installation_log(report, 'UbiquitySyslog', 'syslog') syslog = report['UbiquitySyslog'] if 'Buffer I/O error on device' in syslog: if re.search('Attached .* CD-ROM (\\w+)', syslog): cd_drive = re.search('Attached .* CD-ROM (\\w+)', syslog).group(1) cd_error = re.search('Buffer I/O error on device %s' % cd_drive, syslog) else: cd_error = None if cd_error: ui.information("The system log from your installation contains an error. The specific error commonly occurs when there is an issue with the media from which you were installing. This can happen when your media is dirty or damaged or when you've burned the media at a high speed. Please try cleaning the media and or burning new media at a lower speed. In the event that you continue to encounter these errors it may be an issue with your CD / DVD drive.") raise StopIteration if 'I/O error, dev' in syslog: # check for either usb stick (install media) or hard disk I/O errors if re.search('I/O error, dev (\\w+)', syslog): error_disk = re.search('I/O error, dev (\\w+)', syslog).group(1) mount = apport.hookutils.command_output(['grep', '%s' % error_disk, '/proc/mounts']) if 'target' in mount: ui.information("The system log from your installation contains an error. The specific error commonly occurs when there is an issue with the disk to which you are trying to install Ubuntu. It is recommended that you back up important data on your disk and investigate the situation. Measures you might take include checking cable connections for your disks and using software tools to investigate the health of your hardware.") raise StopIteration if 'cdrom' in mount: ui.information("The system log from your installation contains an error. The specific error commonly occurs when there is an issue with the media from which you were installing. Please try creating the USB stick you were installing from again or try installing from a different USB stick.") raise StopIteration if 'SQUASHFS error: Unable to read' in syslog: ui.information("The system log from your installation contains an error. The specific error commonly occurs when there is an issue with the media from which you were installing. This can happen when your media is dirty or damaged or when you've burned the media at a high speed. Please try cleaning the media and or burning new media at a lower speed. In the event that you continue to encounter these errors it may be an issue with your CD / DVD drive.") raise StopIteration if 'Kernel command line' in syslog: install_cmdline = re.search('Kernel command line: (.*)', syslog).group(1) else: install_cmdline = None if install_cmdline: report['InstallCmdLine'] = install_cmdline if 'Traceback' not in report: collect_grub = False collect_trace = False if 'grub-install ran successfully' not in syslog and 'grub-installer:' in syslog: collect_grub = True if 'Traceback' in syslog: collect_trace = True if report['ProblemType'] != 'Bug' and collect_grub or \ report['ProblemType'] != 'Bug' and collect_trace: duplicate_signature = prepare_duplicate_signature(syslog, collect_grub, collect_trace) if duplicate_signature: report['DuplicateSignature'] = duplicate_signature if collect_grub: report['SourcePackage'] = 'grub-installer' match = re.search('ubiquity.*Ubiquity (.*)\n', syslog) if match: match = match.group(1) report.setdefault('Tags', '') if match: report['Tags'] += ' ubiquity-%s' % match.split()[0] # tag bug reports where people choose to "upgrade" their install of Ubuntu if re.search('UpgradeSystem\\(\\) was called with safe mode', syslog): report['Tags'] += ' ubiquity-upgrade' add_installation_log(report, 'UbiquityPartman', 'partman') debug_log = '/var/log/installer/debug' debug_mode = False if os.path.exists(debug_log): try: fp = open(debug_log, 'r') except (OSError, IOError): pass else: with fp: for line in fp: if line.startswith('debconf (developer)'): debug_mode = True break if debug_mode: response = ui.yesno("The debug log file from your installation would help us a lot but includes the password you used for your user when installing Ubuntu. Do you want to include this log file?") if response is None: raise StopIteration if response: add_installation_log(report, 'UbiquityDebug', 'debug') else: add_installation_log(report, 'UbiquityDebug', 'debug') add_installation_log(report, 'UbiquityDm', 'dm') add_installation_log(report, 'UpstartUbiquity', 'ubiquity.log') # add seed name as Tag so we know which image was used with open('/proc/cmdline', 'r') as f: cmdline = f.read() match = re.search('([^/]+)\\.seed', cmdline) if match: report['Tags'] += ' ' + match.group(1) add_installation_log(report, 'Casper', 'casper.log') add_installation_log(report, 'OemConfigLog', 'oem-config.log') if 'OemConfigLog' in report: report['Tags'] += ' oem-config' ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/package-hooks/subiquity.py������������������������������������������������������0000664�0000000�0000000�00000002546�14416106601�016115� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������''' Send reports about subiquity to the correct Launchpad project. ''' import os from apport import hookutils def add_info(report, ui): # TODO: read the version from the log file? logfile = os.path.realpath('/var/log/installer/subiquity-debug.log') revision = 'unknown' if os.path.exists(logfile): hookutils.attach_file(report, 'logfile', 'InstallerLog') with open(logfile) as fp: first_line = fp.readline() marker = 'Starting Subiquity revision' if marker in first_line: revision = first_line.split(marker)[1].strip() report['Package'] = 'subiquity ({})'.format(revision) report['SourcePackage'] = 'subiquity' # rewrite this section so the report goes to the project in Launchpad report['CrashDB'] = '''{ "impl": "launchpad", "project": "subiquity", "bug_pattern_url": "http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml" }''' # add in subiquity stuff hookutils.attach_file_if_exists( report, '/var/log/installer/subiquity-curtin-install.conf', 'CurtinConfig') hookutils.attach_file_if_exists( report, '/var/log/installer/curtin-install.log', 'CurtinLog') hookutils.attach_file_if_exists( report, '/var/log/installer/block/probe-data.json', 'ProbeData') ����������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/package_hook��������������������������������������������������������������������0000775�0000000�0000000�00000004255�14416106601�013331� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # # Collect information about a package installation/upgrade failure. # # Copyright (c) 2007 - 2009 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import sys, optparse, os.path, os import apport, apport.fileutils def mkattrname(path): '''Convert a file path to a problem report attribute name.''' name = '' for dir in path.split(os.sep): if dir: name += ''.join([c for c in dir[0].upper() + dir[1:] if c.isalnum()]) return name # # main # # parse command line arguments optparser = optparse.OptionParser('%prog [options]') optparser.add_option('-p', '--package', help='Specify the package name which failed to upgrade (mandatory)') optparser.add_option('-l', '--log', action='append', dest='logs', help='Append given log file, or, if it is a directory, all files in it (can be specified multiple times)') optparser.add_option('-t', '--tags', help='Add the following tags to the bug report (comma separated)') options = optparser.parse_args()[0] if not options.package: apport.fatal('You need to specify a package name with --package') sys.exit(1) # create report pr = apport.Report('Package') pr.add_package(options.package) pr['SourcePackage'] = apport.packaging.get_source(options.package) pr['ErrorMessage'] = (sys.stdin, False) if options.tags: tags = options.tags.replace(',', '') pr['Tags'] = tags for line in (options.logs or []): if os.path.isfile(line): pr[mkattrname(line)] = (line,) elif os.path.isdir(line): for f in os.listdir(line): path = os.path.join(line, f) if os.path.isfile(path): pr[mkattrname(path)] = (path,) # write report try: with apport.fileutils.make_report_file(pr) as f: pr.write(f) except (IOError, OSError) as e: apport.fatal('Cannot create report: ' + str(e)) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/recoverable_problem�������������������������������������������������������������0000775�0000000�0000000�00000004375�14416105132�014730� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 '''Report an error that can be recovered from. This application should be called with its standard input pipe fed a nul-separated list of key-value pairs. ''' # Copyright (C) 2012 Canonical Ltd. # Author: Evan Dandrea <ev@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import apport.report import sys import os import argparse def main(): # Check parameters argparser = argparse.ArgumentParser('%(prog) [options]') argparser.add_argument('-p', '--pid', action='store', type=int, dest='optpid') args = argparser.parse_args() # Build the base report report = apport.report.Report('RecoverableProblem') # If we have a parameter pid, use that, otherwise look to our parent if args.optpid: report.pid = args.optpid else: report.pid = os.getppid() # Grab PID info right away, as we don't know how long it'll stick around try: report.add_proc_info(report.pid) except ValueError as e: # The process may have gone away before we could get to it. if str(e) == 'invalid process': return # Get the info on the bug items = sys.stdin.read().split('\0') if len(items) % 2 != 0: sys.stderr.write('Expect even number of fields in stdin, needs to have pairs of key and value.\n') sys.exit(1) while items: key = items.pop(0) if not items: break value = items.pop(0) report[key] = value # Put in the more general stuff report.add_os_info() report.add_user_info() ds = report.get('DuplicateSignature', '') exec_path = report.get('ExecutablePath', '') if exec_path and ds: report['DuplicateSignature'] = '%s:%s' % (exec_path, ds) # Write the final report try: with apport.fileutils.make_report_file(report) as f: report.write(f) except (IOError, OSError) as e: apport.fatal('Cannot create report: ' + str(e)) if __name__ == '__main__': main() �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/root_info_wrapper���������������������������������������������������������������0000775�0000000�0000000�00000000140�13562354544�014455� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # this wrapper just exists so that we can put a polkit .policy around it exec sh "$@" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/spinner.gif���������������������������������������������������������������������0000664�0000000�0000000�00000026724�13562354544�013156� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������GIF89a � ��� !!!+++...111333444666777888999:::===>>>OOOhhhiiikkknnnuuuwwwyyy{{{~~~&&&///555???@@@BBBDDDEEEFFFHHHIIIKKKNNNRRRXXX___vvv """(((AAAGGGLLLTTTUUUVVVYYYZZZ[[[aaabbbppp'''))),,,JJJSSSWWW```dddeeegggmmmooo]]]fff|||$$$***PPPqqqsssttt###%%%---ccc222;;;CCC\\\<<<MMMQQQxxxlll 000^^^zzz}}}jjjrrr���������������������������! NETSCAPE2.0���!�b�,���� � ��aH"PG*1^\V &R�_I %^R#`_H8@ZZ  -a"3aM4NE a];=`aD4Q<(L54BJ)+ƅ_SP]UP̖ )#]4dp%z:#ć d(br!./J8J!;~@TJ,.#H*D %(-=fVH 1gH0Wrng/;x)7Qud %`$X>9 .9 ʥ^0C)y|( %)k̹ǵ��!���,���� � ���H*\ȰC`󰡊4h U\hE2ul /0W4#d\%vq‹9f-g Da)(L`=Drg!tat2 4TaNԠ!eE&+A-e .Px!-Ur rc܄QJ٣'"K @PD5k@j(!;~Ha% ڈ`DN *$rC#pPs@!p;l'aߘn5l(e `|>hQQaUPE`~$[44!!B[$uv (b�!���,���� � ���H*\ȰCJ@!"}I\8ɡ_B$*$` IS,|3˔|t S/W.IrTK(lqEMt QaDxA%:Ց's i 5h±SS ~.WB%-HJ42! 7vE P.@zQ墶! 0 6pQeȎR~eB0_;҈`DMN ZbaE€,P[I%5nL uNb`x]A@>hWLEv4v5!B[$wh(b�!��,���� � ���H*\ȰCK!h^᩸&4\8pK_Ff,+$xIVTd%L#Sni-^_Bj*\IL) j UNBaIW-yC @\O*& xcTJ_hcqXl85CB.An숲PH_|%Q)A{F#L\Ӏ09\FeȎ҅/niD%@0Q~N *ZA#Jt 0Bt'wHuqm;(7^Z`|>YPE4P}44!B[$vh(@�!���,���� � ���H*\ȰCM� !>jЊ15 aHJS:E` IFDI%LZhI@l8 [PbX=*AaY3( 2bezHE(HٲH0VRgQ1l�(ШC<ӥ-r!ǐB'4BӀp5D!өr#G/!".`,~ pK#* %C.>;1 ]$ +Z Ha5ZWA踡qEp]qKaZ "N8f�!���,���� � ���H*\ȰCH!䠨gp(dX@*ϜUtEFvQċI+ќ52 fk9$"m``sZ+"=ZaR&fZ& „b6U4XNҥW.5h|b2V<k FceG G,?~x1e&tiE_Qdr-防0 4(\RPxI \�B".&FT% \|ШĠA<;Qd}H0WZJ#kt^qC /;rI�zmaR9Dr\HGRDلma ( �!���,���� � ���H*\ȰC\V!/ ZT\MlLh%6MrȔKh#:дY\$#b-xJkiҐJP s,%DaXJK_Pp,@Ջ>"[q˒$ J)5I.]^Bx!%:tHj -Ri( 8fJM?Q"8#$G"^riZFT%n\|ШḠA8;UiH0Wtb^GLטǔ0Mwwxe%`xiAE8�C]F9r\H7RDą u($h"B�!��,���� � ���H*\ȰÃW<t v9׉ `0Y^p (`PpkC0Maǡb D \mO'f1#)%abx, 5 ) RH/[C,<"1G+ M2ni$f)H5إKC,D0D",¡Xl Ea8ap0hO@`QċB#XJհaZnlD@0Q|N *A#HfK^N &@!L<2F8X6y8ct0_$C[duh@ƅs AhEK81v P@�!���,���� � ���H*\ȰÇZJD_Nb-E`-<BŊ@-|%L#<*sHUMl۹.X@YzCBM\pРaCJ#Bc\%JP8d* #a(1K8eP 5f98 ^Ӟ@ҥ!"A6ѡHG%`CmaUf(ԳL2XW~682NE(<9^ ^EJ '&J/ 4\vlW I1kᑩ5_1%L^فc /;% !\DEatT@ rAT5hK8fvHP@�!���,���� � ���H*\ȰÇ~QLą=Lq1aT*J"PdUE *H(lF=TRF0]~SKs@4hؐ&4<ΜRDa$ 'Kt%)bZR| q) VIW .]f1IӄMt(8atpc 'ƬZ5I%:j! ɆTB';r!Ј5(ɲK LYΛFTjД\|ШĠDhuRdlWB.D'M|xe^U`|CpQ CT@ƅt~N| ($2�!���,���� � ���H*\ȰÇ^!E0TLeǯC#H`l%/CÝ`$L_}ْ-c%~A )acA$ upHSFVK \ O N[Hc tPv0  A,lCG{<ÍM' z!oC]t|ЛׯoA6hG"^� g:zw!*O7҈JqXL55&|U--Q'#MQR&,ƩKQSAECD](EMQm4MdA[,I($h@�!���,���� � ���H*\ȰÇr;TL=eKD.&xƗ0V^Q!8dh.xxG!4hؐ*N,$D+*}8v!XxШŠwtMʼnJEb (2F:tȻMݺPCi51.hy0hQv(Ea 0ejU.xrB[Q >0 !B}!r6*A0⒭E€RE%dx$iJj1 ^فc IǸIx~F9$H]QFNN ($�!���,���� � ���H*\ȰÇa ATL& GRe@/;>fˍS:F6G0(?�E ]%8#䣍)aZ%%iGIf * 5d'\*8"s@B&FPYE"} W' ;vqUs&Cₓ>Qi>#G/ xɓ tKߪniDw, Z'dmKzEYfUI34 ^فc 4au@]uDG75xK8fvHP@�!���,���� � ���H*\ȰÇJ!Z(&## r"=GSrh$`"JD<ژɪU/:4WFF<H"0=ZLCcC-=hxYPBDW^K\(Qea:MD w�IET(O2F =^6DaM8֓a9FϧOD Y[V\pK#*FU(D.>:)&WuϘ@\"H0W"KRWЪ<R<Fg%5>Q 3h=0&i`'yISu  !  EJDK$ ($�!���,���� � ���H*\ȰÇ#J$.BFteG_|dC*;r4 S0_Ԙ1C"mL dժ(aИ!FJH:z@"LH 2hFN,I-\EJ#*pFѡ܃LR#bL]tH we0W(abOř 1xQDToJ4ZZ^pF%"_#Ac.ZD`BfۻtHIIB`[WvXK4qb�<r \Q p} 5Qx!!Hfv8P@�!���,���� � ���H*\ȰÇ#J$Eɒ.BF` eG_|B%C+<t4!i0_Ԩ6ajU0M:0ҏa\HḊ[zШq BDD ӂ_@ [^H0E(R\C)0'a>Qx")#G ڣGԢ ENŊP* P$p"Q�sS7rQyxc'`<,["G!KDIC,.X:8–]\r0N5k7@RpnK(Ӂdf�!���,���� � ���H*\ȰÇ#J$Eɒ.!BF` eG_€r%:4I/GjHGS0YCJ&i $0ZQ-=hԈbIG!^"nq"/Qte/YlaE"n f *& H3!qJHO.2AQ1B*[.f~Ѳ3-&启 ipI"a . !HO ]Qr$dHb8MY \%ӷld@<l=%쒑(S� MK"eTT҅f�!���,���� � ���H*\ȰÇ#J$EI/A#IƁ^c/a` M̗#6pLLV GF &91-pK5dR8)PD>v!-[P.CG H]tЈ*~ ,?ZHncnE"EEX~Rv.\6҈JiS` R,eܨpC/LT3dy ]QW 40y 3fP1lRxx'pYpcvΗ,~aJ3,I0YW6Qb-+d@U,CtIG5dA*#/Kt($2�!���,���� � ���H*\ȰÇ#J$e/AcIƁ^c/ah M̗#t\)a!%L4@L4@-\A4jD1Ȥ !!nq"/S|eB0[]E"nn r#ǐ@ E!S[ F4*#Gqc_2܆[b Z"ro>)d" /ZdȖk(`L1,7xNb ^)\3sA\bJb9od8KJ9Q  \�G^S. P@�!���,���� � ���H*\ȰÇ#J$ȥI#/AcIƁ^c/al M̗#7xd)a!%L4@L4@-\A4jT-Ȥ !:)PX:Vʶ Qn-An@2aH(dʱP9>Qi * Q$,B.CvhRv.~0ȹ; j1$*D"m,;g0F RR;#@0za(sMxAX=y Ud!D:aadGi <*e"$Y#ݖ0W 0t%5dpLTX&7~$S6�AJ0Mf �!���,���� � ���H*\ȰÇ#J$ȥI#/AcIƁ^c/`h&aHr >@HƔ0LV GL &9D.qK5dR8)PD>v!-mFѡH\[ȱl.:BQ*s|F鑣؃\.~DPtA*qraX$0*PL^0[j&]^h>4^3S`A* #@)x%P՛q}TF1Fg90\J &I0:FYjI1:[e'tpGk},|t➄fC�!���,���� � ���H*\ȰÇ#J$ȥI#/AcIƁ^c/h&aHr @@HƔ0LV GQ &9D.%pK5dR8)PD>v!-mFѡH\\SaG(\r΄]VBDcB&' * IC*MRQmt1r\2hd *&ګǎhy+f H)Uê0>\ afLb傱 )x.I$ Zt$N%w}$=|bBw E AQJv �!��,���� � ���H*\ȰÇ#J$ȥI#/AcIƁ^c/h&aHr @@HƔ0LV GQ &9D.%pK5dR8)PD>v!-m2H\\m 88P䨎 ��` GwM6tZrՅT@u"&V\1b ,eP 2Jۃpa�ARS`\0: ɕ `-W>hKfFz Q8h')'rERxAL@Xv@_A<<X< ᠅v!A�!���,���� � ���H*\ȰÇ#J$ȥI#/AcIƁ^c/hŇ&aHr@@HƔ0LV GQ &9D.%pK5dR8)PD>lB0[ԾM1% B& ޥpn.aP0 =ϴ"2d 4fهFPbL(+M)J!ݰml EIA:g8XG^x8qI"*Eaaf/H>P<[e;)$c@SӇ4S' 4D)aA\(xvHP@�!���,���� � ���H*\ȰÇ#J$ȥI#/AcIƁ^c/hŇ&aHr@@HƔ0LV GQ &9D.%pK5dR8)PD>tB0[Ծ@< Ck&̰bBᒣ'2Y ]L7sTrGfU@]X$^d1&J<%A%]eبX|RE`L)A.Vy0Z(EbyS-B\C2KH/Fl(Nܭ"T"eXJ :qE) G AU@[Vh6�!���,���� � ���H*\ȰÇ#J$ȥI#/AcIƁ^c/hŇ&aHr@@l!)a!%L4@pgZ$ op)RZI B0B _@pK%M0m% 0x0B.An�0Pj D*p ғ Q쪙4LXyPIJoipw Vra݄5>\+܂`DɆb^T5P@mZ/U ԯ]l=*U7fLapKׅ `34JG_PKn_pQ R/!G*6p!A_HQŅv�!��,���� � ���H*\ȰÇ#J$ȥI#/AcIƁTc/R&aHr@@�)a!%L4@0�,# CiчB 4`8$L'LhafK[laDŽ\A%Y֡9pm%Hi"2e%2A LB./B.Cv�J&l~ "E: e%y fP wJA]a\"P']xb0o�C=1.}̋L2dGmVC]aX20G1qU0xVhF�!���,���� � ���H*\ȰÇ#J$ȥI#/AcIƁR e_vI 1X%}%:l 30YCJ&iDj"HRa娔A&5h^T ~C.P<ٹ ѻ4Ǚ9& JB,֨�a(KD%8.P$)ݡm&�re!FNUhC(p%&J A%afeW.dfs@!I<Y BG D1hRi 3Ɨ4LBغ*.pGmC]h<pGEC1XIhfP@�!���,���� � ���H*\ȰÇ#J$ȥI#/AcIƁO e_vI 1؛ȼ%:l2y0YCJ&iD#3j"HR\*lA&5hHCT ~C.QAٹ mԭط' J,ʕ0 KyPKM1RD27]A\�rea(PUhs)6$&JFA%am%(qs@!W.I!.*oL?9C'Z2f& 6K0re.=?pGUt!X9(VP@�!���,���� � ���H*\ȰÇ#J$x/&)F Op-&Qm缄�֢tLW֚%?|QȖy6P<rH ӄ(p:0@E$bԇ9xe 4xD)-LaR.Bݺ B.An찒P ZuKᒲ@:i,2-`?!BR5!!;\Ye+4 mʐ&=F91n 8jF0``L(1x)TNwƌJxa5$8 !CU$DG]`q\D`a$EUv�!��,���� � ���H*\ȰÇ#J$$*2QË@0ÓQLx2n� _v"%€�|Q_>@`NA0"  Q�aa0& 4@AԠ!#D%)Vh1e .T2 C0[�+l$&+  /.A A0>V C!Ҧ:V Trȕ_TBS 8c(n1JQ WNs@!h%7j'aߘRmVAhP B%5UEW`I4UJdPF,av 8P@�;��������������������������������������������apport-2.20.11/data/systemd/������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416101075�012452� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/systemd/apport-forward.socket���������������������������������������������������0000664�0000000�0000000�00000000366�13562354544�016654� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������[Unit] Description=Unix socket for apport crash forwarding ConditionVirtualization=container [Socket] ListenStream=/run/apport.socket SocketMode=0600 Accept=yes MaxConnections=10 Backlog=5 PassCredentials=true [Install] WantedBy=sockets.target ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/systemd/apport-forward@.service�������������������������������������������������0000664�0000000�0000000�00000000216�13562354544�017116� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������[Unit] Description=Apport crash forwarding receiver Requires=apport-forward.socket [Service] Type=oneshot ExecStart=/usr/share/apport/apport ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/systemd/apport.conf�������������������������������������������������������������0000664�0000000�0000000�00000000120�14133257417�014627� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������d /var/lib/apport 0755 root root - d /var/lib/apport/coredump 0755 root root 3d ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/data/unkillable_shutdown�������������������������������������������������������������0000775�0000000�0000000�00000006646�14416105132�014777� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # # Collect information about processes which are still running after sending # SIGTERM to them (which happens during computer shutdown in # /etc/init.d/sendsigs in Debian/Ubuntu) # # Copyright (c) 2010 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os, os.path, sys, errno, optparse import apport, apport.fileutils, apport.hookutils def parse_argv(): '''Parse command line and return (options, args).''' optparser = optparse.OptionParser('%prog [options]') optparser.add_option('-o', '--omit', metavar='PID', action='append', default=[], dest='blacklist', help='Ignore a particular process ID (can be specified multiple times)') (opts, args) = optparser.parse_args() if len(args) != 0: optparser.error('This program does not take any non-option arguments. Please see --help.') sys.exit(1) return (opts, args) def orphaned_processes(blacklist): '''Yield an iterator of running process IDs. This excludes PIDs which do not have a valid /proc/pid/exe symlink (e. g. kernel processes), the PID of our own process, and everything that is contained in the blacklist argument. ''' my_pid = os.getpid() my_sid = os.getsid(0) for d in os.listdir('/proc'): try: pid = int(d) except ValueError: continue if pid == 1 or pid == my_pid or d in blacklist: apport.warning('ignoring: %s', d) continue try: sid = os.getsid(pid) except OSError: # os.getsid() can fail with "No such process" if the process died # in the meantime continue if sid == my_sid: apport.warning('ignoring same sid: %s', d) continue try: os.readlink(os.path.join('/proc', d, 'exe')) except OSError as e: if e.errno == errno.ENOENT: # kernel thread or similar, silently ignore continue apport.warning('Could not read information about pid %s: %s', d, str(e)) continue yield d def do_report(pid, blacklist): '''Create a report for a particular PID.''' r = apport.Report('Bug') try: r.add_proc_info(pid) except (ValueError, AssertionError): # happens if ExecutablePath doesn't exist (any more?), ignore return r['Tags'] = 'shutdown-hang' r['Title'] = 'does not terminate at computer shutdown' if 'ExecutablePath' in r: r['Title'] = os.path.basename(r['ExecutablePath']) + ' ' + r['Title'] r['Processes'] = apport.hookutils.command_output(['ps', 'aux']) r['InitctlList'] = apport.hookutils.command_output(['initctl', 'list']) if blacklist: r['OmitPids'] = ' '.join(blacklist) try: with apport.fileutils.make_report_file(r) as f: r.write(f) except (IOError, OSError) as e: apport.fatal('Cannot create report: ' + str(e)) # # main # (opts, args) = parse_argv() for p in orphaned_processes(opts.blacklist): do_report(p, opts.blacklist) ������������������������������������������������������������������������������������������apport-2.20.11/data/whoopsie-upload-all�������������������������������������������������������������0000775�0000000�0000000�00000014200�14416106601�014572� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # Process all pending crashes and mark them for whoopsie upload, but do not # upload them to any other crash database. Wait until whoopsie is done # uploading. # # Copyright (c) 2013 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os import stat import sys import time import subprocess import argparse import fcntl import errno import zlib import apport.fileutils import apport def process_report(report): '''Collect information for a report and mark for whoopsie upload errors.ubuntu.com does not collect any hook data anyway, so we do not need to bother collecting it. Return path of upload stamp if report was successfully processed, or None otherwise. ''' upload_stamp = '%s.upload' % report.rsplit('.', 1)[0] if os.path.exists(upload_stamp): print('%s already marked for upload, skipping' % report) return upload_stamp report_stat = None r = apport.Report() # make sure we're actually on the hook to write this updated report # before we start doing expensive collection operations try: with open(report, 'rb') as f: try: fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB) except IOError: print('%s already being processed, skipping' % report) return None r.load(f, binary='compressed') report_stat = os.stat(report) except Exception as e: sys.stderr.write('ERROR: cannot load %s: %s\n' % (report, str(e))) return None if r.get('ProblemType', '') != 'Crash' and 'ExecutablePath' not in r: print(' skipping, not a crash') return None if 'Dependencies' in r: print('%s already has info collected' % report) else: print('Collecting info for %s...' % report) r.add_os_info() try: r.add_package_info() except (SystemError, ValueError) as e: sys.stderr.write('ERROR: cannot add package info on %s: %s\n' % (report, str(e))) return None # add information from package specific hooks try: r.add_hooks_info(None) except Exception as e: sys.stderr.write('WARNING: hook failed for processing %s: %s\n' % (report, str(e))) try: r.add_gdb_info() except (IOError, EOFError, OSError, zlib.error) as e: # gzip.GzipFile.read can raise zlib.error. See LP bug #1947800 if hasattr(e, 'errno'): # calling add_gdb_info raises ENOENT if the crash's executable # is missing or gdb is not available but apport-retrace could # still process it if e.errno != errno.ENOENT: sys.stderr.write('ERROR: processing %s: %s\n' % (report, str(e))) if os.path.exists(report): os.unlink(report) return None # write updated report, we use os.open and os.fdopen as # /proc/sys/fs/protected_regular is set to 1 (LP: #1848064) # make sure the file isn't a FIFO or symlink try: fd = os.open(report, os.O_NOFOLLOW | os.O_WRONLY | os.O_APPEND | os.O_NONBLOCK) except FileNotFoundError: # The crash report was deleted. Nothing left to do. return None st = os.fstat(fd) if stat.S_ISREG(st.st_mode): with os.fdopen(fd, 'wb') as f: os.fchmod(fd, 0) r.write(f, only_new=True) os.fchmod(fd, 0o640) # now tell whoopsie to upload the report print('Marking %s for whoopsie upload' % report) apport.fileutils.mark_report_upload(report) assert os.path.exists(upload_stamp) os.chown(upload_stamp, report_stat.st_uid, report_stat.st_gid) return upload_stamp def collect_info(): '''Collect information for all reports Return set of all generated upload stamps. ''' if os.geteuid() != 0: sys.stderr.write('WARNING: Not running as root, cannot process reports' ' which are not owned by uid %i\n' % os.getuid()) stamps = set() reports = apport.fileutils.get_all_reports() for r in reports: res = process_report(r) if res: stamps.add(res) return stamps def wait_uploaded(stamps, timeout): '''Wait until all reports were uploaded. Times out after a given number of seconds. Return True if all reports were uploaded, False if there are some missing. ''' print('Waiting for whoopsie to upload reports (timeout: %i s)' % timeout) while timeout >= 0: # determine missing stamps missing = '' for stamp in stamps: uploaded = stamp + 'ed' if os.path.exists(stamp) and not os.path.exists(uploaded): missing += uploaded + ' ' if not missing: return True print(' missing (remaining: %i s): %s' % (timeout, missing)) time.sleep(10) timeout -= 10 return False # # main # parser = argparse.ArgumentParser(description='Noninteractively upload all ' 'Apport crash reports to errors.ubuntu.com') parser.add_argument('-t', '--timeout', default=0, type=int, help='seconds to wait for whoopsie to upload the reports (default: do not wait)') opts = parser.parse_args() # parse args # verify that whoopsie is running if subprocess.call(['pidof', 'whoopsie'], stdout=subprocess.PIPE) != 0: sys.stderr.write('ERROR: whoopsie is not running\n') sys.exit(1) stamps = collect_info() # print('stamps:', stamps) if stamps: if opts.timeout > 0: if not wait_uploaded(stamps, opts.timeout): sys.exit(2) print('All reports uploaded successfully') else: print('All reports processed') ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debhelper/���������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�012017� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debhelper/apport.pm������������������������������������������������������������������0000664�0000000�0000000�00000000236�13562354544�013663� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl # debhelper sequence file for apport use warnings; use strict; use Debian::Debhelper::Dh_Lib; insert_after("dh_bugfiles", "dh_apport"); 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debhelper/dh_apport������������������������������������������������������������������0000664�0000000�0000000�00000003431�13562354544�013723� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl -w =head1 NAME dh_installapport - install apport package hooks =cut use strict; use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS B<dh_apport> [S<B<debhelper options>>] =head1 DESCRIPTION dh_apport is a debhelper program that installs apport package hooks into package build directories. =head1 FILES =over 4 =item debian/I<package>.apport Installed into /usr/share/apport/package-hooks/I<package>.py in the package build directory. This file is used to control apport's bug filing for this package. =item debian/source.apport Installed into /usr/share/apport/package-hooks/source_I<src>.py (where I<src> is the current source package name) in the package build directory of the first package dh_apport is told to act on. By default, this is the first binary package in debian/control, but if you use -p, -i, or -a flags, it will be the first package specified by those flags. This file is used to control apport's bug filing for all binary packages built by this source package. =back =cut init(); foreach my $package (@{$dh{DOPACKAGES}}) { next if is_udeb($package); my $tmp=tmpdir($package); my $hooksdir="$tmp/usr/share/apport/package-hooks"; my $file=pkgfile($package,"apport"); if ($file ne '') { if (! -d $hooksdir) { doit("install","-d",$hooksdir); } doit("install","-p","-m644",$file,"$hooksdir/$package.py"); } if (-e "debian/source.apport" && $package eq $dh{FIRSTPACKAGE}) { if (! -d $hooksdir) { doit("install","-d",$hooksdir); } my $src=sourcepackage(); doit("install","-p","-m644","debian/source.apport","$hooksdir/source_$src.py"); } } =head1 SEE ALSO L<debhelper(1)> This program is a part of apport. =head1 AUTHOR Colin Watson <cjwatson@ubuntu.com> Copyright (C) 2009 Canonical Ltd., licensed under the GNU GPL v2 or later. =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�15020112462�011265� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport-autoreport.path��������������������������������������������������������0000664�0000000�0000000�00000000324�14416106601�015657� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������[Unit] Description=Process error reports when automatic reporting is enabled (file watch) ConditionPathExists=/var/lib/apport/autoreport [Path] PathExistsGlob=/var/crash/*.crash [Install] WantedBy=paths.target ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport-autoreport.service�����������������������������������������������������0000664�0000000�0000000�00000000362�14416106601�016365� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������[Unit] Description=Process error reports when automatic reporting is enabled ConditionPathExists=/var/lib/apport/autoreport Wants=whoopsie.service After=whoopsie.service [Service] Type=oneshot ExecStart=/usr/share/apport/whoopsie-upload-all ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport-gtk.install������������������������������������������������������������0000664�0000000�0000000�00000000064�14416105132�014751� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������usr/share/apport/*gtk* usr/share/applications/*gtk* ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport-kde.install������������������������������������������������������������0000664�0000000�0000000�00000000472�14416105132�014732� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������usr/share/apport/*kde* usr/share/apport/progress.ui usr/share/apport/error.ui usr/share/apport/bugreport.ui usr/share/apport/choices.ui usr/share/apport/userpass.ui usr/share/apport/spinner.gif usr/share/applications/apport-kde-mime.desktop usr/share/applications/apport-kde-mimelnk.desktop usr/share/mimelnk/text ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport-noui.dirs��������������������������������������������������������������0000664�0000000�0000000�00000000020�13562354544�014437� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/var/lib/apport ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport-noui.postinst����������������������������������������������������������0000664�0000000�0000000�00000000357�13562354544�015376� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh set -e touch /var/lib/apport/autoreport # start the autoreport service on installation if [ -x "/usr/bin/deb-systemd-helper" ]; then deb-systemd-invoke start 'apport-autoreport.path' >/dev/null || true fi #DEBHELPER# ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport-noui.prerm�������������������������������������������������������������0000664�0000000�0000000�00000001111�14416106601�014611� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh set -e if [ "$1" = remove ]; then rm -f /var/lib/apport/autoreport fi # Transition the units to apport package itself if [ -x "/usr/bin/deb-systemd-helper" ]; then deb-systemd-invoke stop 'apport-noui.path' 'apport-noui.service' >/dev/null || true deb-systemd-helper purge 'apport-noui.path' >/dev/null || true deb-systemd-helper unmask 'apport-noui.path' >/dev/null || true if dpkg --compare-versions "$2" ge 2.20.10-0ubuntu4; then deb-systemd-invoke stop 'apport-autoreport.path' >/dev/null || true fi fi #DEBHELPER# �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport-retrace.install��������������������������������������������������������0000664�0000000�0000000�00000000205�14416105132�015606� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������usr/bin/apport-retrace usr/bin/dupdb-admin usr/bin/crash-digger usr/share/man/man1/apport-retrace.1 usr/share/man/man1/dupdb-admin.1 �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport-valgrind.install�������������������������������������������������������0000664�0000000�0000000�00000000075�13562354544�016012� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������usr/bin/apport-valgrind usr/share/man/man1/apport-valgrind.1 �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport.init�������������������������������������������������������������������0000777�0000000�0000000�00000000000�14236463527�017100� 2../etc/init.d/apport��������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport.install����������������������������������������������������������������0000664�0000000�0000000�00000002177�14416106601�014177� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������etc lib/udev/ lib/systemd/ debian/apport-autoreport.path /lib/systemd/system debian/apport-autoreport.service /lib/systemd/system usr/share/apport/apport usr/share/apport/apport-checkreports usr/share/apport/package_hook usr/share/apport/kernel_crashdump usr/share/apport/kernel_oops usr/share/apport/gcc_ice_hook usr/share/apport/apportcheckresume usr/share/apport/unkillable_shutdown usr/share/apport/dump_acpi_tables.py usr/share/apport/is-enabled usr/share/apport/java_uncaught_exception usr/share/apport/recoverable_problem usr/share/apport/root_info_wrapper usr/share/apport/whoopsie-upload-all usr/share/apport/iwlwifi_error_dump usr/share/doc/apport usr/share/locale usr/share/icons usr/share/polkit-1 usr/share/apport/package-hooks usr/share/apport/general-hooks usr/share/man/man1/apport-unpack.1 usr/share/man/man1/apport-bug.1 usr/share/man/man1/apport-cli.1 usr/bin/apport-cli usr/bin/apport-unpack usr/bin/apport-bug usr/bin/apport-collect usr/bin/oem-getlogs usr/lib/pm-utils usr/lib/tmpfiles.d/ ../../java/apport.jar usr/share/apport/ ../../java/crash.jar usr/share/apport/testsuite/ ../../java/crash.class usr/share/apport/testsuite/ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport.links������������������������������������������������������������������0000664�0000000�0000000�00000003201�14416106601�013636� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-meta-oem-osp1.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-meta-oem.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-meta.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-oem-osp1.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-oem.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-signed-oem-osp1.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-signed-oem.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-signed.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-signed-5.4.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-signed-oem-5.4.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-5.4.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-oem-5.4.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-firmware.py /usr/share/apport/package-hooks/source_linux.py /usr/share/apport/package-hooks/source_linux-meta-raspi.py /usr/bin/apport-bug /usr/bin/ubuntu-bug /usr/share/man/man1/apport-bug.1.gz /usr/share/man/man1/ubuntu-bug.1.gz /usr/share/man/man1/apport-bug.1.gz /usr/share/man/man1/apport-collect.1.gz �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport.logrotate��������������������������������������������������������������0000664�0000000�0000000�00000000176�13562354544�014542� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/var/log/apport.log { daily rotate 7 delaycompress compress notifempty missingok } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport.maintscript������������������������������������������������������������0000664�0000000�0000000�00000000174�14416101075�015061� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������rm_conffile /etc/apport/native-origins.d/lts-q-backports 2.5.1-0ubuntu8~ rm_conffile /etc/init/apport.conf 2.20.6-0ubuntu5~ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/apport.postinst���������������������������������������������������������������0000664�0000000�0000000�00000000330�13562354544�014415� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh set -e if [ "$1" = configure ]; then # directory is required for package failures even if apport is disabled and # thus the upstart job does not run mkdir -p -m 1777 /var/crash fi #DEBHELPER# ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/changelog���������������������������������������������������������������������0000664�0000000�0000000�00001675012�15020112462�013153� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport (2.20.11-0ubuntu27.29) focal-security; urgency=medium * SECURITY REGRESSION: apport not generating core dumps inside containers (LP: #2112272) - data/apport: Check the exe mtime within the proc root mount. -- Octavio Galland <octavio.galland@canonical.com> Wed, 04 Jun 2025 15:49:22 -0300 apport (2.20.11-0ubuntu27.28) focal-security; urgency=medium * SECURITY UPDATE: Insecure report permissions (LP: #2106338) - data/apport: Do not change report group to report owners primary group. - CVE-2025-5467 * SECURITY UPDATE: Race condition when forwarding core files to containers (LP: #2107472) - data/apport: Do not override options.pid. - data/apport: Open /proc/<pid> as early as possible. - data/fileutils.py: Respect proc_pid_fd in get_core_path. - test/test_fileutils.py: Respect proc_pid_fd in get_core_path. - data/apport: Use opened /proc/<pid> everywhere. - data/apport: Do consistency check before forwarding crashes. - data/apport: Require --dump-mode to be specified. - data/apport: Determine report owner by dump_mode. - test/test_signal_crashes.py: Determine report owner by dump_mode. - data/apport: Do not forward crash for dump_mode == 2. - data/apport: Support pidfd (%F) parameter from kernel. - etc/init.d/apport: Support pidfd (%F) parameter from kernel. - CVE-2025-5054 -- Octavio Galland <octavio.galland@canonical.com> Thu, 22 May 2025 17:30:20 -0300 apport (2.20.11-0ubuntu27.27) focal; urgency=medium * whoopsie-upload-all: Catch zlib.error when decoding CoreDump from crash file (LP: #1947800) * Fix KeyError: 'CasperMD5json' (LP: #1964828) * apport-kde: Fix inverse order of choices (LP: #1967965) * apport-unpack: Fix ValueError: ['separator'] has no binary content (LP: #1889443) * test: - Clear environment for test_run_as_real_user_no_sudo - Mock add_gdb_info calls in KDE UI tests - Fix KDE UI tests if whoopsie.path is disabled - Fix race with progress dialog in KDE UI tests - Run UI KDE tests again - Determine source package dynamically in test_run_crash_kernel (LP: #1992172) -- Benjamin Drung <bdrung@ubuntu.com> Fri, 14 Apr 2023 01:17:21 +0200 apport (2.20.11-0ubuntu27.26) focal-security; urgency=medium * SECURITY UPDATE: viewing an apport-cli crash with default pager could escalate privilege (LP: #2016023) - apport/ui.py, apport/user_group.py, bin/apport-cli: drops privilege to users environment before execution (using sudo) - test/test_ui.py, test/test_user/group.py: Add test cases for new code - CVE-2023-1326 -- Benjamin Drung <bdrung@ubuntu.com> Wed, 12 Apr 2023 18:41:51 +0200 apport (2.20.11-0ubuntu27.25) focal; urgency=medium * Point Vcs-* URIs to git * whoopsie-upload-all: Catch FileNotFoundError during process_report (LP: #1867204) * Grab a slice of JournalErrors around the crash time (LP: #1962454) * data/apport: - Initialize error log as first step (LP: #1989467) - Fix PermissionError for setuid programs inside container (LP: #1982487) - Fix reading from stdin inside containers (LP: #1982555) * Fix autopkgtest test case failures (LP: #1989467): - Mark autopkgtest with isolation-container restriction - Fix failure if kernel module isofs is not installed - Do not check recommended dependencies - Skip UI test if kernel thread is not found - Fix race in test_crash_system_slice - Fix check for not running test executable - Use shadow in *_different_binary_source - Mock kernel package version in UI test - Fix test_kerneloops_nodetails if kernel is not installed - Drop broken test_crash_setuid_drop_and_kill - Expect linux-signed on arm64/s390x as well - Skip SegvAnalysis for non x86 architectures - Use unlimited core ulimit for SIGQUIT test - Fix race with progress window in GTK UI tests - Use sleep instead of yes for tests - Fix test_add_gdb_info_script on armhf - Fix wrong Ubuntu archive URI on ports - Fix KeyError in test_install_packages_unversioned - Depend on python3-systemd for container tests - Depend on psmisc for killall binary - Replace missing oxideqt-codecs - Drop broken test_install_packages_from_launchpad - Fix test_install_packages_permanent_sandbox* for s390x -- Benjamin Drung <bdrung@ubuntu.com> Thu, 15 Sep 2022 14:43:39 +0200 apport (2.20.11-0ubuntu27.24) focal-security; urgency=medium * SECURITY UPDATE: Fix multiple security issues - test/test_report.py: Fix flaky test. - data/apport: Fix too many arguments for error_log(). - data/apport: Use proper argument variable name executable_path. - etc/init.d/apport: Set core_pipe_limit to a non-zero value to make sure the kernel waits for apport to finish before removing the /proc information. - apport/fileutils.py, data/apport: Search for executable name if one wan't provided such as when being called in a container. - data/apport: Limit memory and duration of gdbus call. (CVE-2022-28654, CVE-2022-28656) - data/apport, apport/fileutils.py, test/test_fileutils.py: Validate D-Bus socket location. (CVE-2022-28655) - apport/fileutils.py, test/test_fileutils.py: Turn off interpolation in get_config() to prevent DoS attacks. (CVE-2022-28652) - Refactor duplicate code into search_map() function. - Switch from chroot to container to validating socket owner. (CVE-2022-1242, CVE-2022-28657) - data/apport: Clarify error message. - apport/fileutils.py: Fix typo in comment. - apport/fileutils.py: Do not call str in loop. - data/apport, etc/init.d/apport: Switch to using non-positional arguments. Get real UID and GID from the kernel and make sure they match the process. Also fix executable name space handling in argument parsing. (CVE-2022-28658, CVE-2021-3899) -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Tue, 10 May 2022 09:23:35 -0400 apport (2.20.11-0ubuntu27.23) focal; urgency=medium * Fix expanded symlinks from the previous build -- William 'jawn-smith' Wilson <jawn-smith@ubuntu.com> Wed, 30 Mar 2022 13:03:09 -0500 apport (2.20.11-0ubuntu27.22) focal; urgency=medium * apport/ui.py: Error out when -w option is used on wayland (LP: #1952947). -- Nick Rosbrook <nick.rosbrook@canonical.com> Wed, 16 Feb 2022 11:32:21 -0500 apport (2.20.11-0ubuntu27.21) focal-security; urgency=medium * SECURITY UPDATE: Privilege escalation via core files - refactor privilege dropping and create core files in a well-known directory in apport/fileutils.py, apport/report.py, data/apport, test/test_fileutils.py, test/test_report.py, test/test_signal_crashes.py, test/test_ui.py. - use systemd-tmpfiles to create and manage the well-known core file directory in setup.py, data/systemd/apport.conf, debian/apport.install. -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Mon, 18 Oct 2021 07:48:31 -0400 apport (2.20.11-0ubuntu27.20) focal-security; urgency=medium * SECURITY UPDATE: Arbitrary file read (LP: #1934308) - data/general-hooks/ubuntu.py: don't attempt to include emacs byte-compilation logs, they haven't been generated by the emacs packages in a long time. - CVE-2021-3709 * SECURITY UPDATE: Info disclosure via path traversal (LP: #1933832) - apport/hookutils.py, test/test_hookutils.py: detect path traversal attacks, and directory symlinks. - CVE-2021-3710 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 26 Aug 2021 10:30:01 -0400 apport (2.20.11-0ubuntu27.18) focal-security; urgency=medium * SECURITY UPDATE: Multiple arbitrary file reads (LP: #1917904) - apport/hookutils.py: don't follow symlinks and make sure the file isn't a FIFO in read_file(). - test/test_hookutils.py: added symlink tests. - CVE-2021-32547, CVE-2021-32548, CVE-2021-32549, CVE-2021-32550, CVE-2021-32551, CVE-2021-32552, CVE-2021-32553, CVE-2021-32554, CVE-2021-32555 * SECURITY UPDATE: info disclosure via modified config files spoofing (LP: #1917904) - backends/packaging-apt-dpkg.py: properly terminate arguments in get_modified_conffiles. - CVE-2021-32556 * SECURITY UPDATE: arbitrary file write (LP: #1917904) - data/whoopsie-upload-all: don't follow symlinks and make sure the file isn't a FIFO in process_report(). - CVE-2021-32557 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Tue, 18 May 2021 09:15:10 -0400 apport (2.20.11-0ubuntu27.17) focal; urgency=medium * data/general-hooks/ubuntu.py: tag bugs from Raspberry Pi images and RISCV images appropriately. (LP: #1920837) * apport/hookutils.py: spawn pkttyagent so that log files can be gathered as root in a non-graphical environment (LP: #1821415). Thanks to Iain Lane for the patch. * apport/hookutils.py: root access is needed to read the casper-md5check.json file so switch to using that. (LP: #1922937) -- Brian Murray <brian@ubuntu.com> Mon, 26 Apr 2021 13:28:49 -0700 apport (2.20.11-0ubuntu27.16) focal-security; urgency=medium * SECURITY UPDATE: multiple security issues (LP: #1912326) - CVE-2021-25682: error parsing /proc/pid/status - CVE-2021-25683: error parsing /proc/pid/stat - CVE-2021-25684: stuck reading fifo - data/apport: make sure existing report is a regular file. - apport/fileutils.py: move some logic here to skip over manipulated process names and filenames. - test/test_fileutils.py: added some parsing tests. -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Tue, 26 Jan 2021 07:21:46 -0500 apport (2.20.11-0ubuntu27.14) focal; urgency=medium * data/apport: only drop supplemental groups if the user is root. (LP: #1906565) -- Brian Murray <brian@ubuntu.com> Thu, 03 Dec 2020 09:26:27 -0800 apport (2.20.11-0ubuntu27.13) focal; urgency=medium * data/apport: Modify the check for whether or not a process is running in the same namespace so that crashes from processes running protected in the system.slice are considered as being from the same namespace. (LP: #1870060) -- Brian Murray <brian@ubuntu.com> Mon, 16 Nov 2020 14:40:03 -0800 apport (2.20.11-0ubuntu27.12) focal-security; urgency=medium * Various security hardening fixes (LP: #1903332) - apport/fileutils.py: drop privileges in the correct order, limit settings file size. - apport/apport/report.py: properly drop privileges, limit ignore file size. - data/apport: drop supplemental groups. -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Tue, 10 Nov 2020 15:03:57 -0500 apport (2.20.11-0ubuntu27.11) focal; urgency=medium * data/apport: In the event that the crashing executable does not exist on disk any more the path name of the executable (passed by core) is appended with '(deleted)' because apport is currently using sys.argv for argument parsing there end up being too many arguments and apport crashes. This is fixed by adding handling for six arguments. (LP: #1899195) -- Brian Murray <brian@ubuntu.com> Fri, 16 Oct 2020 13:30:49 -0700 apport (2.20.11-0ubuntu27.10) focal; urgency=medium * apport/hookutils.py: call dump_acpi_tables.py with root_command_output thereby avoiding a PermissionError. (LP: #1895865) * data/dump_acpi_tables.py: If the user cannot read the acpi tables don't try and print them. (LP: #1895865) -- Brian Murray <brian@ubuntu.com> Mon, 28 Sep 2020 08:47:49 -0700 apport (2.20.11-0ubuntu27.9) focal; urgency=medium [ YC Cheng ] * apport/apport/hookutils.py: add acpidump using built-in dump_acpi_tables.py. (LP: #1888352) * bin/oem-getlogs: add "-E" in the usage, since we'd like to talk to pulseaudio session and that need environment infomation. Also remove acpidump since we will use the one from hook. -- Brian Murray <brian@ubuntu.com> Wed, 02 Sep 2020 09:48:39 -0700 apport (2.20.11-0ubuntu27.8) focal; urgency=medium [Brian Murray] * Fix pep8 errors regarding ambiguous variables. -- Dariusz Gadomski <dgadomski@ubuntu.com> Sun, 09 Aug 2020 13:43:11 +0200 apport (2.20.11-0ubuntu27.7) focal; urgency=medium * d/control: Offer real package alternatives along with x-terminal-server for apport-gtk and apport-kde (LP: #1881976) -- Dariusz Gadomski <dgadomski@ubuntu.com> Wed, 05 Aug 2020 10:55:40 +0200 apport (2.20.11-0ubuntu27.6) focal-security; urgency=medium * SECURITY UPDATE: information disclosure issue (LP: #1885633) - data/apport: also drop gid when checking if user session is closing. - CVE-2020-11936 * SECURITY UPDATE: crash via malformed ignore file (LP: #1877023) - apport/report.py: don't crash on malformed mtime values. - CVE-2020-15701 * SECURITY UPDATE: TOCTOU in core file location - data/apport: make sure the process hasn't been replaced after Apport has started. - CVE-2020-15702 * apport/ui.py, test/test_ui.py: make sure a PID is specified when using --hanging (LP: #1876659) * WARNING: This package does _not_ contain the changes from 2.20.11-0ubuntu27.5 in focal-proposed. -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Fri, 31 Jul 2020 09:10:30 -0400 apport (2.20.11-0ubuntu27.4) focal; urgency=medium [ Lukas Märdian ] * Backport snap handling for ubuntu-bug from Groovy (LP: #1861082) * Build-depend on python3-requests-unixsocket. [ Brian Murray ] * data/dump_acpi_tables.py: update the output thanks to Alex Hung for the patch. (LP: #1883027) -- Brian Murray <brian@ubuntu.com> Wed, 24 Jun 2020 09:57:22 -0700 apport (2.20.11-0ubuntu27.3) focal; urgency=medium * apport_python_hook.py: if python apt modules are not built for the python version then do capture the crash. (LP: #1774843) * apport/report.py: If the user is not a part of any system groups then set UserGroups to 'N/A'. (LP: #1427600) -- Brian Murray <brian@ubuntu.com> Mon, 01 Jun 2020 09:44:37 -0700 apport (2.20.11-0ubuntu27.2) focal; urgency=medium * gtk/apport-gtk: upgrade regular expression used to match URLs in free text (LP: #1871185) -- Brian Murray <brian@ubuntu.com> Tue, 12 May 2020 15:34:22 -0700 apport (2.20.11-0ubuntu27.1) focal; urgency=medium * debian/apport.install: Add in a source package hook for linux-meta-raspi which provides linux-raspi and linux-raspi2. (LP: #1876952) * data/general-hooks/ubuntu.py: collect ImageMediaBuild information which exists on preinstalled RPi images. (LP: #1876945) * Add in a source package hook symlink for linux-firmware. (LP: #1872059) * debian/tests/control: Depend on python3-twisted, not python-twisted-core -- Brian Murray <brian@ubuntu.com> Tue, 05 May 2020 17:25:01 -0700 apport (2.20.11-0ubuntu27) focal; urgency=medium * backends/packaging-apt-dpkg.py, apport/sandboxutils.py: Add modifications to the retracing process to resolve failures to retrace due to user merge changes. * etc/apport/crashdb.conf: Disable Launchpad crash reports for 20.04 release. -- Brian Murray <brian@ubuntu.com> Wed, 15 Apr 2020 17:01:49 -0700 apport (2.20.11-0ubuntu26) focal; urgency=medium * apport/hookutils.py, data/general-hooks/ubuntu.py: Add in a hook which will add the results of the casper-md5check to all bug reports. (LP: #1870408) -- Brian Murray <brian@ubuntu.com> Wed, 08 Apr 2020 15:46:56 -0700 apport (2.20.11-0ubuntu25) focal; urgency=medium [ Brian Murray ] * apport/hookutils.py: Add in "lspci -vt" output for the HWE team. [ Dimitri John Ledkov ] * data/general-hooks/powerpc.py: Hande reports without a package, such as against subiquity snap, otherwise the hook crashes subiquity, which is trying to generate a crash report. LP: #1871434 * data/package-hooks/subiquity.py: Fix typpo in subiquity hook, readline from fp, not from filename. -- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 07 Apr 2020 20:04:10 +0100 apport (2.20.11-0ubuntu24) focal; urgency=medium * bin/apport-unpack: Handle gzip'ed files, thanks to Yuan-Chen Cheng for the patch. (LP: #1859581) -- Brian Murray <brian@ubuntu.com> Fri, 03 Apr 2020 10:38:06 -0700 apport (2.20.11-0ubuntu23) focal; urgency=medium * With Michael Hudson-Doyle add a package hook to allow subiquity problems to be reported from the installed system and about the subuquity project. -- Brian Murray <brian@ubuntu.com> Fri, 03 Apr 2020 09:33:54 -0700 apport (2.20.11-0ubuntu22) focal; urgency=medium * SECURITY UPDATE: World writable root owned lock file created in user controllable location (LP: #1862348) - data/apport: Change location of lock file to be directly under /var/run so that regular users can not directly access it or perform symlink attacks. - CVE-2020-8831 * SECURITY UPDATE: Race condition between report creation and ownership (LP: #1862933) - data/apport: When setting owner of report file use a file-descriptor to the report file instead of its path name to ensure that users can not cause Apport to change the ownership of other files via a symlink attack. - CVE-2020-8833 -- Alex Murray <alex.murray@canonical.com> Wed, 25 Mar 2020 11:28:58 +1030 apport (2.20.11-0ubuntu21) focal; urgency=medium [ Brian Murray ] * backends/packaging-apt-dpkg.py: allow mirrors which are accessed via https in sources.list. Thanks to Launchpad user Esokrates for the fix. (LP: #1866996) * backends/packaging-apt-dpkg.py: when downloading packages from Launchpad do not require them to be authenticated. * test/test_backend_apt_dpkg.py: Fix check for connectivity and modify install from PPA test for a change in the PPA being tested. [ Matthieu Clemenceau ] * test/test_ui.py: Removed linux package version to fix autopkgtest with focal. Changed linux-5.4 and linux-signed-5.4 to linux and linux-signed -- Brian Murray <brian@ubuntu.com> Thu, 12 Mar 2020 15:46:30 -0700 apport (2.20.11-0ubuntu20) focal; urgency=medium * test/test_report.py: resolve test failure with new glibc output. -- Brian Murray <brian@ubuntu.com> Tue, 10 Mar 2020 08:41:28 -0700 apport (2.20.11-0ubuntu19) focal; urgency=medium * apport/report.py: do not return a duplicate signature when we are unable to access ProcMaps as that is necessary to create one. (LP: #1866347) * apport/ui.py: Always allow users to use ubuntu-bug or apport-collect regardless of the Problem Reporting setting as they are manually invoked and not automatically generated like a crash report. (LP: #1814611) -- Brian Murray <brian@ubuntu.com> Mon, 09 Mar 2020 15:18:42 -0700 apport (2.20.11-0ubuntu18) focal; urgency=medium * data/whoopsie-upload-all: append to the crash report using fdopen and open from os to cope with protected_regular being set to 1. (LP: #1848064) -- Brian Murray <brian@ubuntu.com> Sat, 22 Feb 2020 06:56:37 -0800 apport (2.20.11-0ubuntu17) focal; urgency=medium [ Brian Murray ] * Add in a source package hook symlinks for linux-signed-5.4, linux-signed-oem-5.4, linux-oem-5.4, and linux-5.4. (LP: #1861446) * Remove obsolete package hook for Nexus 7 devices. [ Tiago Stürmer Daitx ] * Fix Python 2/3 support. (LP: #1853383) -- Brian Murray <brian@ubuntu.com> Fri, 21 Feb 2020 13:16:54 -0800 apport (2.20.11-0ubuntu16) focal; urgency=medium * SECURITY REGRESSION: 'module' object has no attribute 'O_PATH' (LP: #1851806) - apport/report.py, apport/ui.py: use file descriptors for /proc/pid directory access only when running under python 3; prevent reading /proc maps under python 2 as it does not provide a secure way to do so; use io.open for better compatibility between python 2 and 3. * data/apport: fix number of arguments passed through socks into a container. * test/test_report.py: test login session with both pid and proc_pid_fd. -- Tiago Stürmer Daitx <tiago.daitx@ubuntu.com> Mon, 06 Jan 2020 13:28:40 +0000 apport (2.20.11-0ubuntu15) focal; urgency=medium * etc/apport/crashdb.conf: Enable Launchpad crash reports for focal. -- Brian Murray <brian@ubuntu.com> Fri, 20 Dec 2019 10:35:17 -0800 apport (2.20.11-0ubuntu14) focal; urgency=medium * apport/report.py, test/test_report.py: handle the fact that gdb now returns a different error message for truncated core files in some cases. * bin/oem-getlogs: add in script for getting hardware enablement related logs. Thanks to Yuan-Chen Cheng for the code. (LP: #1841157) * apport/hookutils.py: also gather lsusb -v and lsusb -t. Thanks to Yuan-Chen Cheng for the patch. * bin/oem-getlogs: Various pep8 / pyflakes fixes. -- Brian Murray <brian@ubuntu.com> Fri, 13 Dec 2019 08:41:58 -0800 apport (2.20.11-0ubuntu13) focal; urgency=medium [ Brian Murray ] * Create additional symlinks to the source_linux.py apport package hook for many OEM kernels. Thanks to You-Sheng Yang for the patch. (LP: #1847967) [ Michael Hudson-Doyle ] * Fix autopkgtest failures since recent security update: (LP: #1854237) - Fix regression in creating report for crashing setuid process by getting kernel to tell us the executable path rather than reading /proc/[pid]/exe. - Fix deletion of partially written core files. - Fix test_get_logind_session to use new API. - Restore add_proc_info raising ValueError for a dead process. - Delete test_lock_symlink, no longer applicable now that the lock is created in a directory only root can write to. -- Michael Hudson-Doyle <michael.hudson@ubuntu.com> Fri, 06 Dec 2019 08:57:09 +1300 apport (2.20.11-0ubuntu12) focal; urgency=medium [ Steve Langasek ] * Drop python2 bindings. [ Tiago Stürmer Daitx ] * debian/control: point VCS to focal repository. -- Steve Langasek <steve.langasek@ubuntu.com> Tue, 03 Dec 2019 10:46:40 -0800 apport (2.20.11-0ubuntu11) focal; urgency=medium * SECURITY REGRESSION: missing argument in Report.add_proc_environ call (LP: #1850929) - apport/report.py: call add_proc_environ using named arguments and move proc_pid_dir keyword to last to keep api compatibility. -- Tiago Stürmer Daitx <tiago.daitx@ubuntu.com> Tue, 05 Nov 2019 02:49:27 +0000 apport (2.20.11-0ubuntu10) focal; urgency=medium * SECURITY UPDATE: apport reads arbitrary files if ~/.config/apport/settings is a symlink (LP: #1830862) - apport/fileutils.py: drop permissions before reading user settings file. - CVE-2019-11481 * SECURITY UPDATE: TOCTTOU race conditions and following symbolic links when creating a core file (LP: #1839413) - data/apport: use file descriptor to reference to cwd instead of strings. - CVE-2019-11482 * SECURITY UPDATE: fully user controllable lock file due to lock file being located in world-writable directory (LP: #1839415) - data/apport: create and use lock file from /var/lock/apport. - CVE-2019-11485 * SECURITY UPDATE: per-process user controllable Apport socket file (LP: #1839420) - data/apport: forward crashes only under a valid uid and gid, thanks Stéphane Graber for the patch. - CVE-2019-11483 * SECURITY UPDATE: PID recycling enables an unprivileged user to generate and read a crash report for a privileged process (LP: #1839795) - data/apport: drop permissions before adding proc info (special thanks to Kevin Backhouse for the patch) - data/apport, apport/report.py, apport/ui.py: only access or open /proc/[pid] through a file descriptor for that directory. - CVE-2019-15790 -- Tiago Stürmer Daitx <tiago.daitx@ubuntu.com> Tue, 29 Oct 2019 05:23:08 +0000 apport (2.20.11-0ubuntu9) focal; urgency=medium * Use an SRU-safe substring when checking for the available version of aspell-doc in xenial, since aspell *did* have an SRU. -- Steve Langasek <steve.langasek@ubuntu.com> Tue, 22 Oct 2019 14:07:14 -0700 apport (2.20.11-0ubuntu8) eoan; urgency=medium * Removed general hook which would gather information about click packages. * data/package-hooks/source_ubiquity: pass on a KeyError when adding installation logs. * etc/apport/crashdb.conf: Disable Launchpad crash reports for 19.04 release. -- Brian Murray <brian@ubuntu.com> Wed, 09 Oct 2019 14:23:27 -0700 apport (2.20.11-0ubuntu7) eoan; urgency=medium * Resolve pycodestyle issues. -- Brian Murray <brian@ubuntu.com> Mon, 22 Jul 2019 14:23:42 -0700 apport (2.20.11-0ubuntu6) eoan; urgency=medium * apport/ui.py: When saving a report for later processing if the filename to save it to ends with .gz then gzip the report file. Thanks to Yuan-Chen Cheng for the patch. (LP: #1837174) -- Brian Murray <brian@ubuntu.com> Mon, 22 Jul 2019 12:20:34 -0700 apport (2.20.11-0ubuntu5) eoan; urgency=medium * SECURITY UPDATE: TOCTOU issue allows local user to read arbitrary files (LP: #1830858) - apport/report.py: Avoid TOCTOU issue on users ignore file by dropping privileges and then opening the file both test for access and open the file in a single operation, instead of using access() before reading the file which could be abused by a symlink to cause Apport to read and embed an arbitrary file in the resulting crash dump. - CVE-2019-7307 * data/general-hooks/ubuntu.py: system-image-cli is no longer included in Ubuntu and we do not need SystemImageInfo any more. -- Brian Murray <brian@ubuntu.com> Tue, 09 Jul 2019 12:33:44 -0700 apport (2.20.11-0ubuntu3) eoan; urgency=medium * test/test_backend_apt_dpkg.py: Now that there are per architecture cache files we need to make all of them outdated rather than just the first one. (LP: #1832120) -- Brian Murray <brian@ubuntu.com> Mon, 10 Jun 2019 16:02:32 -0700 apport (2.20.11-0ubuntu2) eoan; urgency=medium * test/test_backend_apt_dpkg.py: as of r3211 an error is not raised if the binary is not found. Cherry picked from upstream r3248. * backends/packaging-apt-dpkg.py: writing the contents mapping pickle file can Traceback on systems with little memory so don't write it. Cherry picked from upstream r3250. * test/test_apport_valgrind.py: skip test_sandbox_cache_options if system has little memory. -- Brian Murray <brian@ubuntu.com> Mon, 20 May 2019 18:39:46 -0700 apport (2.20.11-0ubuntu1) eoan; urgency=medium * New upstream release: - problem_report.py: Decrease zlib compression level from 9 to 6. After a crash, this reduces the time Apport spends compressing the core dump by an order of magnitude. Thanks to Anders Kaseorg for the analysis and initial patch. (LP: #1537635) - backends/packaging-apt-dpkg.py: utilize a global mapping of files to packages instead of searching a Contents.gz file multiple times, additionally write this mapping to disk so subsequent lookups and retraces are quicker. (LP: #1370230) - test/test_report.py: add some tests for additional errors with core files. * debian/control: move python3-launchpadlib from a Suggests to a Depends as python3-launchpadlib which was missed some time ago. (LP: #1824002) * debian/control: Update VCS attribute. * etc/apport/crashdb.conf: Enable Launchpad crash reports for eoan. * Incorporate unreleased changes from upstream apport version 2.20.12: - backends/packaging-apt-dpkg.py: Utilize a release and architecture specific contents mapping. - test/test_backend_apt_dpkg.py: Update the test as we are using a contents mapping. - test/test_report.py: remove unused import of gzip. -- Brian Murray <brian@ubuntu.com> Fri, 17 May 2019 10:51:14 -0700 apport (2.20.10-0ubuntu27) disco; urgency=medium * data/whoopsie-upload-all: confirm the exception has an errno before using it in a comparison. (LP: #1824152) -- Brian Murray <brian@ubuntu.com> Thu, 11 Apr 2019 09:52:07 -0700 apport (2.20.10-0ubuntu26) disco; urgency=medium * etc/apport/crashdb.conf: Disable Launchpad crash reports for 19.04 release. -- Brian Murray <brian@ubuntu.com> Mon, 08 Apr 2019 14:59:46 -0700 apport (2.20.10-0ubuntu25) disco; urgency=medium * test/test_report.py: update test_add_proc_info for function raising a ValueError. -- Brian Murray <brian@ubuntu.com> Thu, 04 Apr 2019 10:18:25 -0700 apport (2.20.10-0ubuntu24) disco; urgency=medium * debian/control: apport-gtk should depend on whoopsie-preferences as that is needed to store preferences for reporting crashes. (LP: #1809247) * apport/report.py, apport/ui.py: raise ValueError if the pid is not accessible, display an error message for that or an invalid pid. (LP: #1396160) * switch from pyflakes to pyflakes3, drop some python2 code * apport/report.py: Have add_gdb_info return a FileNotFoundError if gdb or the crashing executable are not found and modify whoopsie-upload-all to upload crashes in that situation. (LP: #1820132) * debian/control, apport/hookutils.py: pkexec does not work in non-graphical environments yet (LP #1821415) and its providing package should only be a suggests because gathering of information as root isn't entirely necessary for a bug report. -- Brian Murray <brian@ubuntu.com> Mon, 01 Apr 2019 16:05:25 -0700 apport (2.20.10-0ubuntu23) disco; urgency=medium * Fix python coding style issue introduced in previous upload. -- Julian Andres Klode <juliank@ubuntu.com> Tue, 05 Mar 2019 10:35:17 +0100 apport (2.20.10-0ubuntu22) disco; urgency=medium * Introduce support for non-positional arguments (LP: #1732962) -- Julian Andres Klode <juliank@ubuntu.com> Mon, 04 Mar 2019 17:48:00 +0100 apport (2.20.10-0ubuntu21) disco; urgency=medium [ Matthias Klose ] * Avoid deprecation warnings. * Fix VCS attribute in the control file. [ Steve Langasek ] * End our gdb batch script with a separator, to accomodate new exit codes from gdb 8.2.50. -- Steve Langasek <steve.langasek@ubuntu.com> Thu, 14 Feb 2019 21:26:00 -0800 apport (2.20.10-0ubuntu20) disco; urgency=medium * apport/ui.py: if report.get_timestamp() returns None don't try and use it in a comparison. (LP: #1658188) -- Brian Murray <brian@ubuntu.com> Mon, 04 Feb 2019 14:35:36 -0800 apport (2.20.10-0ubuntu19) disco; urgency=medium * debian/apport-autoreport.service: Since this calls whoopsie-upload-all which fails if whoopsie isn't running, it should have a relationship with whoopsie.service. (LP: #1787729) -- Brian Murray <brian@ubuntu.com> Wed, 16 Jan 2019 10:23:09 -0800 apport (2.20.10-0ubuntu18) disco; urgency=medium * test/test_apport_valgrind.py: specify the location for true. -- Brian Murray <brian@ubuntu.com> Mon, 07 Jan 2019 16:02:14 -0800 apport (2.20.10-0ubuntu17) disco; urgency=medium * backends/packaging-apt-dpkg.py: switch to using python3-launchpadlib to communicate with Launchpad thereby gaining retry capabilities and using its cache. * backends/packaging-apt-dpkg.py: strip /usr from binary names so the .list file will match. * Re-enable Launchpad crash reports for disco. * test/*: switch from using deprecated imp to importlib, modify binary locations for merged-usr changes. * apport/report.py: reorder directories check for binaries so /usr is checked first. -- Brian Murray <brian@ubuntu.com> Fri, 21 Dec 2018 08:36:40 -0800 apport (2.20.10-0ubuntu14) disco; urgency=medium * apport/ui.py: when using ubuntu-bug properly handle executables which start with /snap/bin. (LP: #1760220) -- Brian Murray <brian@ubuntu.com> Thu, 01 Nov 2018 09:30:11 -0700 apport (2.20.10-0ubuntu13) cosmic; urgency=medium * Fix PEP8 605 warnings and ignore 503,504 ones. -- Brian Murray <brian@ubuntu.com> Thu, 11 Oct 2018 14:35:11 -0700 apport (2.20.10-0ubuntu12) cosmic; urgency=medium * etc/apport/crashdb.conf: Disable Launchpad crash reports for 18.10 release. * data/general-hooks/ubuntu.py: include apport conffiles so we know if people have manually turned on crash reporting to Launchpad or if something is wrong with apport. -- Brian Murray <brian@ubuntu.com> Thu, 11 Oct 2018 11:54:22 -0700 apport (2.20.10-0ubuntu11) cosmic; urgency=medium * Drop build/test dependency on obsolete libnih-dev. -- Steve Langasek <steve.langasek@ubuntu.com> Wed, 12 Sep 2018 20:28:31 -0700 apport (2.20.10-0ubuntu10) cosmic; urgency=medium * Handle old reports generated pre-apport with "remember" option. If the option isn't there, consider as false. (LP: #1791324) -- Didier Roche <didrocks@ubuntu.com> Mon, 10 Sep 2018 18:17:09 +0200 apport (2.20.10-0ubuntu9) cosmic; urgency=medium * Revert the accidental bad changes introduced by the previous upload. Sorry! -- Simon Quigley <tsimonq2@ubuntu.com> Wed, 22 Aug 2018 17:01:05 -0700 apport (2.20.10-0ubuntu8) cosmic; urgency=medium * Add an alternative Recommends on lxqt-notificationd for the apport-kde package so kubuntu-notification-helper isn't pulled in on Lubuntu. -- Simon Quigley <tsimonq2@ubuntu.com> Tue, 21 Aug 2018 00:51:40 -0500 apport (2.20.10-0ubuntu7) cosmic; urgency=medium * tests/test_ui_gtk.py: Increase the timeout so that when the autopkgtest infrastructure is busy the tests should not fail. (LP: #1780767) -- Brian Murray <brian@ubuntu.com> Tue, 24 Jul 2018 08:03:49 -0700 apport (2.20.10-0ubuntu6) cosmic; urgency=medium * Start apport-autoreport after installing apport-noui. -- Brian Murray <brian@ubuntu.com> Tue, 17 Jul 2018 13:27:49 -0700 apport (2.20.10-0ubuntu5) cosmic; urgency=medium * Assume if no whoopsie that crash reporting is enabled: As the old configuration that was a whoopsie configuration file that was that was never updated by the whoopsie API, we assume that no whoopsie installed (not the default) == manual send report is allowed. If people want to disable crash reporting: - get whoopsie installed and disable crash reporting in g-c-c - uninstall apport -- Didier Roche <didrocks@ubuntu.com> Mon, 02 Jul 2018 10:59:22 +0200 apport (2.20.10-0ubuntu4) cosmic; urgency=medium * Add a remember option to whoopsie so that users can diminish crash interactions (LP: #1778497) * Move apport autoreport service files to apport binary package. Having them in apport-noui was creating a bug where autoreport wasn't working on desktop. As we check in the launched script for whoopsie and autoreport file, we don't autoreport by default. (LP: #1778694) apport-noui still touches the file to enable autoreport on install. * Remove upstart service and watershed dependency. -- Didier Roche <didrocks@ubuntu.com> Fri, 29 Jun 2018 15:35:52 +0200 apport (2.20.10-0ubuntu3) cosmic; urgency=medium * data/apport: Properly handle crashes originating from a PID namespace. (LP: #1746668) - CVE-2018-6552 -- Brian Murray <brian@ubuntu.com> Wed, 30 May 2018 12:01:46 -0700 apport (2.20.10-0ubuntu2) cosmic; urgency=medium * etc/apport/crashdb.conf: Enable Launchpad crash reports for cosmic. -- Brian Murray <brian@ubuntu.com> Fri, 11 May 2018 09:51:37 -0700 apport (2.20.10-0ubuntu1) cosmic; urgency=medium * New upstream release: - backends/packaging-apt-dpkg.py: when using a permanent sandbox better check for the package being already available thereby reducing quantity of downloads. - apport/report.py: Use timeout parameter in subprocess to limit how long we'll wait for gdb to return information as gdb can hang with some core files. - data/apport: Fix PEP8 issues - apport/ui.py: Include ProblemType in reports which are updated as package hooks may expect the report to have a ProblemType. (LP: #1766794) - test/test_ui.py: modify run_crash_kernel test to account for the fact that linux-image-$kvers-$flavor is now built from the linux-signed source package on amd64 and ppc64el. (LP: #1766740) * data/general-hooks/ubuntu.py: Fix UnicodeDecodeError when processing DpkgTerminalLog. (LP: #1766337) * data/general-hooks/ubuntu.py: Don't display a messy error if python or python3 is not installed. (LP: #1769262) * debian/apport.links: source_linux-signed.py -> source_linux.py package hook (LP: #1766740) * data/package-hooks/source_linux.py: Redirect bugs filed about the linux-signed source package to linux. (LP: #1766740) -- Brian Murray <brian@ubuntu.com> Thu, 10 May 2018 09:31:34 -0700 apport (2.20.9-0ubuntu6) bionic; urgency=medium * etc/apport/crashdb.conf: Disable Launchpad crash reports for 18.04 release. -- Brian Murray <brian@ubuntu.com> Fri, 20 Apr 2018 14:53:33 -0700 apport (2.20.9-0ubuntu5) bionic; urgency=medium * apport/hookutils.py: When gathering dmi information use read_file() which handles UTF-8. (LP: #1762438) -- Brian Murray <brian@ubuntu.com> Fri, 13 Apr 2018 11:19:31 -0700 apport (2.20.9-0ubuntu4) bionic; urgency=medium * apport/hookutils.py: When gathering gsettings schema changes redact information regarding command-history and favorite-apps from gnome-shell. (LP: #1739531) -- Brian Murray <brian@ubuntu.com> Thu, 05 Apr 2018 10:51:59 -0700 apport (2.20.9-0ubuntu3) bionic; urgency=medium * Help people who are trying to report bugs against snaps (LP: #1729491) -- Julian Andres Klode <juliank@ubuntu.com> Wed, 04 Apr 2018 18:08:52 +0200 apport (2.20.9-0ubuntu2) bionic; urgency=medium * data/general-hooks/generic.py: Have JournalErrors include warnings but only for apport-crash reports which are private by default. (LP: #1738581) * setup.py: update version with javac -- Brian Murray <brian@ubuntu.com> Wed, 28 Mar 2018 11:45:29 -0700 apport (2.20.9-0ubuntu1) bionic; urgency=medium * New upstream release: - apport/sandboxutils.py: when installing extra packages do not install the debug versions of them as this was installing gdb-dbg. If debug versions of a package are specifically required they can be passed as an extra-package. - backends/packaging-apt-dpkg.py: when reusing a sandbox do not remove conflicting packages when they conflict with themselves, or when they conflict with but also provide a virtual package. - bin/apport-retrace: add a --no-stracktrace-source option that does not do the work of creating a StacktraceSource field in the retraced report thereby decreasing the time to retrace. - data/apport: wait for lock, with 30s timeout (LP: #1746874) -- Brian Murray <brian@ubuntu.com> Wed, 14 Feb 2018 10:21:20 -0800 apport (2.20.8-0ubuntu10) bionic; urgency=medium * bin/apport-bug,bin/apport-cli: Now that we depend on python3 we should switch to using python3. (LP: #1748621) -- Brian Murray <brian@ubuntu.com> Tue, 13 Feb 2018 08:51:11 -0800 apport (2.20.8-0ubuntu9) bionic; urgency=medium * data/general-hooks/generic.py: change JournalErrors to contain errors not warnings. (LP: #1738581) -- Brian Murray <brian@ubuntu.com> Mon, 12 Feb 2018 16:42:28 -0800 apport (2.20.8-0ubuntu8) bionic; urgency=medium * apport/report.py: gdb's version 8.0.90 output changed from Warning to warning however to support using gdb in sandbox we need to support either case so check for both. -- Brian Murray <brian@ubuntu.com> Thu, 01 Feb 2018 10:43:23 -0800 apport (2.20.8-0ubuntu7) bionic; urgency=medium * bin/apport-bug: recommend python3-apport not python-apport. (LP: #1729879) * data/package-hooks/source_ubiquity.py: Convert the content of syslog from bytes to string so comparison and regex matches in the hook work. Thanks to Jean-Baptiste Lallement for the improved patch. (LP: #1582950) -- Brian Murray <brian@ubuntu.com> Tue, 30 Jan 2018 08:24:53 -0800 apport (2.20.8-0ubuntu6) bionic; urgency=medium * data/apport: return True when the name space can not be found. -- Brian Murray <brian@ubuntu.com> Tue, 02 Jan 2018 14:10:35 -0800 apport (2.20.8-0ubuntu5) bionic; urgency=medium * data/apport: add an exception handler in case either name space can not be found. -- Brian Murray <brian@ubuntu.com> Fri, 15 Dec 2017 14:50:47 -0800 apport (2.20.8-0ubuntu4) bionic; urgency=medium * data/apport: add a second os.path.exists check to ensure we do not receive a Traceback in is_container_id(). (LP: #1733366) -- Brian Murray <brian@ubuntu.com> Wed, 13 Dec 2017 10:30:23 -0800 apport (2.20.8-0ubuntu3) bionic; urgency=medium * apport-retrace: Use Python3. LP: #1153671. -- Matthias Klose <doko@ubuntu.com> Tue, 05 Dec 2017 15:39:46 +0100 apport (2.20.8-0ubuntu2) bionic; urgency=medium [ Stéphane Graber ] * REGRESSION UPDATE: Fix regression in previous upload by re-enabling container support. (LP: #1732518) * Add code preventing a user from confusing apport by using a manually crafted filesystem inside a combination of a user and mount namespace. * Add a check in apport receiver for the number of arguments so that should another argument be added later, the receiver will simply ignore the crash until it itself gets updated. -- Brian Murray <brian@ubuntu.com> Mon, 20 Nov 2017 08:46:52 -0800 apport (2.20.8-0ubuntu1) bionic; urgency=medium * New upstream release: - SECURITY UPDATE: Denial of service via resource exhaustion and privilege escalation when handling crashes of tainted processes. - When /proc/sys/fs/suid_dumpable is set to 2, do not assume that the user and group owning the /proc/<PID>/stat file is the same owner and group that started the process. Rather check the dump mode of the crashed process and do not write a core file if its value is 2. Thanks to Sander Bos for discovering this issue! (CVE-2017-14177, LP: #1726372) - SECURITY UPDATE: Denial of service via resource exhaustion, privilege escalation, and possible container escape when handling crashes of processes inside PID namespaces. - Change the method for determining if a crash is from a container so that there are no false positives from software using PID namespaces. Additionally, disable container crash forwarding by ignoring crashes that occur in a PID namespace. This functionality may be re-enabled in a future update. Thanks to Sander Bos for discovering this issue! (CVE-2017-14180, LP: #1726372) * apport/hookutils.py: modify package_versions to return an empty string if packages is empty. (LP: #1723822) -- Brian Murray <brian@ubuntu.com> Wed, 15 Nov 2017 12:44:24 -0800 apport (2.20.7-0ubuntu4) bionic; urgency=medium * etc/apport/crashdb.conf: Enable Launchpad crash reports for bionic. * bin/apport-cli: read until <enter> instead of a single character when # of apport options is non-unique with a single character. Thanks to Chad Smith for the patch. (LP: #1722564) -- Brian Murray <brian@ubuntu.com> Wed, 08 Nov 2017 12:18:04 -0800 apport (2.20.7-0ubuntu3.1) artful; urgency=medium * etc/apport/crashdb.conf: Disable Launchpad crash reports for 17.10 release. (LP: #1726647) -- Brian Murray <brian@ubuntu.com> Tue, 24 Oct 2017 08:22:21 -0700 apport (2.20.7-0ubuntu3) artful; urgency=medium * Make debian/apport.init a symlink to etc/init.d/apport so that dh_installinit creates a good postinst. (LP: #1722801) -- Brian Murray <brian@ubuntu.com> Wed, 11 Oct 2017 14:26:50 -0700 apport (2.20.7-0ubuntu2) artful; urgency=medium * data/package-hooks/source_ubiquity.py: Convert the content of syslog from bytes to string so comparison and regex matches in the hook work. (LP: #1582950) -- Brian Murray <brian@ubuntu.com> Wed, 27 Sep 2017 14:44:40 -0700 apport (2.20.7-0ubuntu1) artful; urgency=medium * New upstream release: - backends/packaging-apt-dpkg.py: Don't install the version mentioned in a versioned dep, rather install the latest version of that dep. - backends/packaging-apt-dpkg.py: search -proposed last so we prefer packages from other pockets. -- Brian Murray <brian@ubuntu.com> Tue, 29 Aug 2017 16:45:01 -0700 apport (2.20.6-0ubuntu7) artful; urgency=medium * data/general-hooks/ubuntu.py: When gathering python version information also try to determine package and version of the binary. -- Brian Murray <brian@ubuntu.com> Wed, 23 Aug 2017 12:34:23 -0700 apport (2.20.6-0ubuntu6) artful; urgency=medium * data/general-hooks/ubuntu.py: Gather information about the python versions installed on the system as versions not from the Ubuntu archive can cause issues. (LP: #1681528) -- Brian Murray <brian@ubuntu.com> Fri, 18 Aug 2017 11:13:14 -0700 apport (2.20.6-0ubuntu5) artful; urgency=medium * Remove upstart system job. -- Dimitri John Ledkov <xnox@ubuntu.com> Mon, 07 Aug 2017 17:18:13 -0400 apport (2.20.6-0ubuntu4) artful; urgency=medium * apport/REThread.py: A bare except needs to be used so that we can catch the dialog being closed. * test/test_report.py: Be a little patient and give some time for the core file to show up. -- Brian Murray <brian@ubuntu.com> Fri, 21 Jul 2017 10:42:33 -0700 apport (2.20.6-0ubuntu3) artful; urgency=medium * debian/control: Add dependencies on python3-httplib2 / python-httplib2. -- Brian Murray <brian@ubuntu.com> Wed, 19 Jul 2017 11:06:24 -0700 apport (2.20.6-0ubuntu2) artful; urgency=medium * Fix new pep8 failures in artful - E722 do not use bare except. -- Brian Murray <brian@ubuntu.com> Tue, 18 Jul 2017 13:25:50 -0700 apport (2.20.6-0ubuntu1) artful; urgency=medium * New upstream release: - SECURITY FIX: Fix path traversal vulnerability with hooks execution. Ensure that ExecutablePath: fields loaded from reports do not contain directories. Until now, an attacker could trick a user into opening a malicious .crash file containing ExecutablePath: /opt/../../../../some/dir/foo which would execute /some/dir/foo.py with arbitrary code. Thanks to Felix Wilhelm for discovering this! (CVE-2017-10708, LP: #1700573) - Stop installing a MIME handler for crash files as it ends up causing more trouble than it is worth. - bin/crash-digger: Set self.lp if the crashdb is Launchpad. - test/test_backend_apt_dpkg.py: cache directories contain the architecture in the path if if is not the native arch. - apport/crashdb_impl/launchpad.py: Don't make a contentless change to a bug, it just generates more bug mail. - apport/crashdb_impl/launchpad.py: Handle FailedToDecompressContent httplib2 error when downloading a broken attachment. - Convert regular expressions to raw strings to avoid deprecation warnings with Python version 3.6. Thanks to Michael Hudson-Doyle for the patch! -- Brian Murray <brian@ubuntu.com> Tue, 18 Jul 2017 13:02:29 -0700 apport (2.20.5-0ubuntu5) artful; urgency=medium * Cherry picked from upstream's unreleased 2.20.6 - Convert regular expressions to raw strings to avoid deprecation warnings with Python version 3.6. Thanks to Michael Hudson-Doyle for the patch! -- Brian Murray <brian@ubuntu.com> Mon, 19 Jun 2017 13:24:57 -0700 apport (2.20.5-0ubuntu4) artful; urgency=medium * data/general-hooks/ubuntu.py: Modify how a duplicate signature is created for package installation failures. (LP: #1692127) -- Brian Murray <brian@ubuntu.com> Mon, 22 May 2017 16:37:50 -0700 apport (2.20.5-0ubuntu3) artful; urgency=medium * Revert change to test/test_crash_digger.py to use the source's crash-digger. -- Brian Murray <brian@ubuntu.com> Mon, 15 May 2017 16:00:06 -0700 apport (2.20.5-0ubuntu2) artful; urgency=medium * Resolve test failures: - bin/crash-digger: Set self.lp if the crashdb is Launchpad. - test/test_crash_digger.py: use the source's crash-digger not the installed one. - test/test_backend_apt_dpkg.py: cache directories contain the architecture in the patch if if is not the native arch. -- Brian Murray <brian@ubuntu.com> Mon, 15 May 2017 13:13:36 -0700 apport (2.20.5-0ubuntu1) artful; urgency=medium * New upstream release: - bin/apport-retrace: Comment on bug reports when an invalid core file is encountered. (LP: #1647635) - Switch to using HxW directory names for app icons instead of just one number. Thanks to Jeremy Bicha for the patch. - apport/ui.py: Ensure the Date field exists in a report before using it in a comparison. (LP: #1658188) - bin/apport-retrace: Add in a --gdb-sandbox switch which creates or utilizes a sandbox with the report's distribution release and the host system's architecture for installing and running gdb. (LP: #1517257) - apport/hookutils.py: Don't crash if .xsession-errors is not readable by the user. (LP: #1675928) - bin/apport-retrace: Be specific about which required field is missing from a report and not retracing it. * debian/control: Adjust Vcs-Bzr: for artful branch. -- Brian Murray <brian@ubuntu.com> Fri, 12 May 2017 15:11:38 -0700 apport (2.20.4-0ubuntu7) artful; urgency=medium * data/general/ubuntu-gnome.py: The GNOME3 PPAs are no longer supported for 14.04 or 16.04 so set an UnreportableReason in those reports. (LP: #1689093) -- Brian Murray <brian@ubuntu.com> Wed, 10 May 2017 14:53:46 -0700 apport (2.20.4-0ubuntu6) artful; urgency=medium * Disable report.test_add_gdb_info_abort_glib test case for now, as the glib assertion message is broken under current Ubuntu (LP: #1689344) * etc/apport/crashdb.conf: Enable Launchpad crash reports for artful. -- Brian Murray <brian@ubuntu.com> Mon, 08 May 2017 11:10:34 -0700 apport (2.20.4-0ubuntu5) artful; urgency=medium * Resolve autopkgtest failures in test_backend_apt_dpkg.py due to issues with apt key ring. Thanks to Dimitri John Ledkov for the patch. (LP: #1651623) -- Brian Murray <brian@ubuntu.com> Fri, 05 May 2017 10:05:18 -0700 apport (2.20.4-0ubuntu4) zesty; urgency=medium * etc/apport/crashdb.conf: Disable Launchpad crash reports for 17.04 release. -- Iain Lane <iain.lane@canonical.com> Mon, 10 Apr 2017 13:16:34 +0100 apport (2.20.4-0ubuntu3) zesty; urgency=medium * data/general/ubuntu.py: Collect a minimal version of /proc/cpuinfo in every report. (LP: #1673557) * debian/control: remove build dep on libglib2.0-0-dbg since the gdb helpers moved to libglib2.0-dev. -- Brian Murray <brian@ubuntu.com> Wed, 29 Mar 2017 11:16:33 -0700 apport (2.20.4-0ubuntu2) zesty; urgency=medium * Enable Launchpad crash upload for Ubuntu 17.04. -- Brian Murray <brian@ubuntu.com> Fri, 03 Feb 2017 09:47:31 -0800 apport (2.20.4-0ubuntu1) zesty; urgency=medium * New upstream release: - SECURITY FIX: Restrict a report's CrashDB field to literals. Use ast.literal_eval() instead of the generic eval(), to prevent arbitrary code execution from malicious .crash files. A user could be tricked into opening a crash file whose CrashDB field contains an exec(), open(), or similar commands; this is fairly easy as we install a MIME handler for these. Thanks to Donncha O'Cearbhaill for discovering this! (CVE-2016-9949, LP: #1648806) - SECURITY FIX: Fix path traversal vulnerability with hooks execution. Ensure that Package: and SourcePackage: fields loaded from reports do not contain directories. Until now, an attacker could trick a user into opening a malicious .crash file containing "Package: ../../../../some/dir/foo" which would execute /some/dir/foo.py with arbitrary code. Thanks to Donncha O'Cearbhaill for discovering this! (CVE-2016-9950, LP: #1648806) - SECURITY FIX: apport-{gtk,kde}: Only offer "Relaunch" for recent /var/crash crashes. It only makes sense to offer relaunching for crashes that just happened and the apport UI got triggered on those. When opening a .crash file copied from somewhere else or after the crash happened, this is even actively dangerous as a malicious crash file can specify any arbitrary command to run. Thanks to Donncha O'Cearbhaill for discovering this! (CVE-2016-9951, LP: #1648806) - backends/packaging-apt-dpkg.py: provide a fallback method if using zgrep to search for a file in Contents.gz fails due to a lack of memory. Thanks Brian Murray. - bin/apport-retrace: When --core-file is used instead of loading the core file and adding it to the apport report just pass the file reference to gdb. * debian/control: Adjust Vcs-Bzr: for zesty branch. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 14 Dec 2016 21:28:57 +0100 apport (2.20.3-0ubuntu8) yakkety; urgency=medium * Prefer pycodestyle build dependency over pep8. * debian/tests/upstream-system: Create and export $GNUPGHOME, to work with gnupg2. * apport-gtk: Specify module version with GI imports to avoid warnings. Thanks Anatoly Techtonik. (LP: #1502173) * Disable Launchpad crash upload for final Ubuntu 16.10. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 10 Oct 2016 14:28:17 +0200 apport (2.20.3-0ubuntu7) yakkety; urgency=medium * Merge from trunk: - test/test_report.py: Slightly relax stack trace checks to also work with glibc 2.24. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 15 Aug 2016 08:37:34 +0200 apport (2.20.3-0ubuntu6) yakkety; urgency=medium * packaging-apt-dpkg.py: Change the proxy settings to use DIRECT instead of direct. The latter never really worked, but APT did not complain about it. -- Julian Andres Klode <juliank@ubuntu.com> Fri, 12 Aug 2016 19:22:23 +0000 apport (2.20.3-0ubuntu5) yakkety; urgency=medium * packaging-apt-dpkg.py: Explicitly set Dir::State::Status to the host dpkg status file for get_source_tree() to work with apt 1.3~pre4 -- Julian Andres Klode <juliank@ubuntu.com> Fri, 05 Aug 2016 10:47:11 +0000 apport (2.20.3-0ubuntu4) yakkety; urgency=medium * test_backend_apt_dpkg.py: Expect trusted.gpg.d in armhf config dir -- Julian Andres Klode <juliank@ubuntu.com> Thu, 04 Aug 2016 08:15:07 +0000 apport (2.20.3-0ubuntu3) yakkety; urgency=medium * test_backend_apt_dpkg.py: Adjust for new error message on missing repositories, it now says "does not have a Release file" * test_backend_apt_dpkg.py: Create a symlink for trusted.gpg.d in the armhf config dir, as the backend looks for trusted.gpg.d relative to the sources.list location in the config dir -- Julian Andres Klode <juliank@ubuntu.com> Wed, 03 Aug 2016 23:22:54 +0000 apport (2.20.3-0ubuntu2) yakkety; urgency=medium * test_backend_apt_dpkg.py: Move tests from Ubuntu 15.10 "wily" (which is EOL now) to 16.04 LTS "xenial". (Cherry-picked from trunk) -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 31 Jul 2016 23:04:45 +0200 apport (2.20.3-0ubuntu1) yakkety; urgency=medium [ Hans Joachim Desserud ] * Fix typo (cehcking -> checking) (LP: #1603463). [ Martin Pitt ] * New upstream release: - problem_report.py: Fail with proper exception when trying to assign a list to a report key, or when trying to assing a tuple with more than 4 entries. (LP: #1596713) - test_backend_apt_dpkg.py: Install GPG key for ddebs.ubuntu.com to avoid apt authentication errors. * Bump Standards-Version to 3.9.8 (no changes necessary). -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 Jul 2016 14:10:46 +0200 apport (2.20.2-0ubuntu1) yakkety; urgency=medium [ Brian Murray ] * data/general-hooks/ubuntu.py: tag bug reports 'apport-hook-error' if they have an attachment from an apport hook which crashed. [ Martin Pitt ] * New upstream release. Changes since our previous snapshot: - Don't ignore OSError in Report.add_gdb_info(), as we do want to fail with an useful error message if gdb cannot be called in apport-retrace. Move the catching to the UI as not having gdb installed is still fine for reporting clients. (LP: #1579949) - Show gdb error messages in Report.add_gdb_info() OSError exception when gdb fails. (LP: #1579897) - hookutils, attach_root_command_outputs(): Return str again, like before 2.15.2. (LP: #1370259) - Stop issuing "set architecture" gdb commands on ARM and Power; these only applied to 32 bit platforms and are apparently not needed any more with recent gdb versions. (LP: #1585702) - Disable report.test_add_gdb_info_abort_libnih test case for now, as libnih is broken under current Ubuntu (LP: #1580601) -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 19 Jun 2016 22:17:35 +0200 apport (2.20.1-0ubuntu4) yakkety; urgency=medium * data/general-hooks/ubuntu.py: Fix stacktrace when parsing DpkgTerminalLog.txt. (LP: #1548421) * data/general-hooks/ubuntu.py: Restore starting package problem duplicate signatures with the word package, the package name, and its version. (LP: #1581682) -- Brian Murray <brian@ubuntu.com> Mon, 16 May 2016 14:16:15 -0700 apport (2.20.1-0ubuntu3) yakkety; urgency=medium * debian/control: Adjust Vcs-Bzr: for yakkety branch. * Re-enable Launchpad crash reports for yakkety. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 02 May 2016 12:10:15 -0500 apport (2.20.1-0ubuntu2) xenial; urgency=medium * Merge fixes from trunk: - problem_report.py: Make assertion of invalid key names more verbose. - hookutils.py: Fix generation of valid report key names from arbitrary paths in attach_file() and related functions. This will now replace all invalid characters with dots, not just a few known invalid ones. (LP: #1566975) - problem_report.py: Instead of AssertionError, raise a ValueError for invalid key names and TypeError for invalid kinds of values. Thanks Barry Warsaw. * Disable Launchpad crash upload for final Ubuntu 16.04. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 13 Apr 2016 23:53:46 +0200 apport (2.20.1-0ubuntu1) xenial; urgency=medium * New upstream release. Changes since our previous snapshot: - crash-digger: Untag bugs which cannot be retraced instead of stopping crash-digger. This led to too many pointless manual restarts on broken bug reports. * Disambiguate overly generic Python exceptions in duplicate signature computation: dbus-glib's DBusException wraps a "real" server-side exception, so add the class of that to disambiguate different crashes; for OSError that is not a known subclass like FileNotFoundError, add the errno. (LP: #989819) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 31 Mar 2016 16:16:37 +0200 apport (2.20-0ubuntu3) xenial; urgency=medium * Relax report.test_add_gdb_info gdb warning check, as this changed with gdb 7.10.90. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 16 Feb 2016 08:41:10 +0100 apport (2.20-0ubuntu2) xenial; urgency=medium * Fix signal_crashes.test_modify_after_start test when running as root. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 15 Feb 2016 11:49:56 +0100 apport (2.20-0ubuntu1) xenial; urgency=medium * New upstream release. - Reimplement forwarding crashes into a container, via activating the new apport-forward.socket in the container and handing over the core dump fd. This is a much safer way than the original implementation with nsexec. Thanks Stéphane Graber! (LP: #1445064) * Drop long-obsolete sysv-rc dependency. * Add python3-systemd recommendation to apport, to make crash report generation work in containers. * Install new systemd units into apport package. -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 14 Feb 2016 13:41:36 +0100 apport (2.19.4-0ubuntu2) xenial; urgency=medium * debian/apport.upstart: Call systemd-detect-virt instead of the Ubuntu specific running-in-container wrapper. (LP: #1539016) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 Jan 2016 14:58:06 +0100 apport (2.19.4-0ubuntu1) xenial; urgency=medium * New upstream bug fix release: - Fix fileutils.test_find_package_desktopfile test for symlinks and other unowned files in /usr/share/applications/. - Fix ui.test_run_crash_anonymity test case to not fail if the base64 encoded core dump happens to contain the user name, as that's just by chance. - Fix test_hooks.py for unreleased gcc versions which have a different --version format. - hookutils.py, attach_hardware(): Stop attaching /var/log/udev. This was an upstart-ism, mostly redundant with the udev db and is not being written under systemd. (LP: #1537211) * etc/apport/crashdb.conf: Enable crash reports on Launchpad for xenial. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 26 Jan 2016 15:37:44 +0100 apport (2.19.3-0ubuntu3) xenial; urgency=medium * data/general-hooks/powerpc.py: Add support to collect more data on PowerNV. (LP: #1499226) Thanks to Kamalesh Babulal for the patch. -- Brian Murray <brian@ubuntu.com> Tue, 12 Jan 2016 17:06:29 -0800 apport (2.19.3-0ubuntu2) xenial; urgency=medium * Fix fileutils.test_find_package_desktopfile test for symlinks and other unowned files in /usr/share/applications/. (Cherry-picked from trunk.) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 10 Dec 2015 10:31:19 +0100 apport (2.19.3-0ubuntu1) xenial; urgency=medium * New upstream microrelease: - apt/dpkg: Fix source record lookup in install_packages. Thanks Brian Murray! - hookutils.py, attach_gsettings_schema(): Don't replace the schema variable; fixes attaching relocatable schemas. Thanks Sébastien Bacher! - generic hook: Limit JournalErrors to the 1.000 last lines. This avoids long report load times when processes cause massive log spew. (LP: #1516947) - Add key filtering to ProblemReport.load(). - Don't read the entire report when determining the CrashCounter. This avoids long delays for existing large reports. - test_python_crashes.py: Be less sensitive to the precise names of gvfs-metadata D-Bus service files. - Move backend_apt_dpkg -dbgsym test cases to Ubuntu 15.10. - Tests: Move to unittest's builtin "mock" module. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 08 Dec 2015 09:49:00 +0100 apport (2.19.2-0ubuntu9) xenial; urgency=medium * If trimming the DpkgTerminalLog file fails, keep the whole log file in the report. (LP: #1522849) -- Brian Murray <brian@ubuntu.com> Mon, 07 Dec 2015 09:19:37 -0800 apport (2.19.2-0ubuntu8) xenial; urgency=medium * No-change rebuild against fixed debhelper. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 25 Nov 2015 06:21:22 +0100 apport (2.19.2-0ubuntu7) xenial; urgency=medium * data/general-hooks/ubuntu.py: resolve Traceback when parsing DpkgTerminalError and using python2. -- Brian Murray <brian@ubuntu.com> Tue, 24 Nov 2015 11:35:10 -0800 apport (2.19.2-0ubuntu6) xenial; urgency=medium * Add Conflicts/Replaces/Provides: core-dump-handler, to ensure mutual uninstallability with systemd-coredump and corekeeper. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 13 Nov 2015 11:20:31 +0100 apport (2.19.2-0ubuntu5) xenial; urgency=medium * data/general-hooks/ubuntu.py: ensure that dpkg_log_without_error is a string. -- Brian Murray <brian@ubuntu.com> Mon, 09 Nov 2015 09:12:03 -0800 apport (2.19.2-0ubuntu4) xenial; urgency=medium * data/general-hooks/ubuntu.py: For package installation failures, build a DuplicateSignature from the dpkg terminal log as using the package, version, and dpkg ErrorMessage ended up being too generic. -- Brian Murray <brian@ubuntu.com> Fri, 06 Nov 2015 09:14:29 -0800 apport (2.19.2-0ubuntu3) xenial; urgency=medium * apport: Fix comparison against SIGQUIT to work for current Python versions. (Cherry-picked from upstream). -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 04 Nov 2015 14:06:22 -0600 apport (2.19.2-0ubuntu2) xenial; urgency=medium * apport/ui.py: set "_MarkForUpload" field to False for cases where the apport report is damaged, about a not installed package, or when an error occurred processing the report. (LP: #1512902) -- Brian Murray <brian@ubuntu.com> Tue, 03 Nov 2015 15:44:18 -0800 apport (2.19.2-0ubuntu1) xenial; urgency=medium * New upstream release. Changes since previous snapshot: - SECURITY FIX: When determining the path of a Python module for a program like "python -m module_name", avoid actually importing and running the module; this could lead to local root privilege escalation. Thanks to Gabriel Campana for discovering this and the fix! (CVE-2015-1341, LP: #1507480) - test_backend_apt_dpkg.py: Reset internal apt caches between tests. Avoids random test failures due to leaking paths from previous test cases. * debian/control: Adjust Vcs-Bzr: for xenial branch. * debian/control: Drop obsolete XS-Testsuite: header. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 27 Oct 2015 14:33:28 +0100 apport (2.19.1-0ubuntu3) wily; urgency=medium * Disable Launchpad crash upload for final Ubuntu 15.10. * Fix backend_apt_dpkg.test_install_packages_system for recent "Fall back to direct Launchpad ddeb download" fix. coreutils-dbgsym should now always be available independent of whether the local system has ddeb apt sources. (Cherry-picked from trunk). -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Oct 2015 08:48:25 +0200 apport (2.19.1-0ubuntu2) wily; urgency=medium * apt/dpkg: Don't mark packages downloaded from Launchpad for installation by apt. Thanks Brian Murray. (Cherry-picked from trunk.) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 08 Oct 2015 08:04:12 +0200 apport (2.19.1-0ubuntu1) wily; urgency=medium [ Martin Pitt ] * New upstream release: - Consistently intercept "report file already exists" errors in all writers of report files (package_hook, kernel_crashdump, and similar) to avoid unhandled exceptions on those. (LP: #1500450) - apt/dpkg: Fall back to direct Launchpad ddeb download if we can't find it in the apt cache. Thanks Brian Murray! (LP: #1500557) - doc/data-format.tex: Clarify that key names are being treated as case sensitive (unlike RFC822). [ Brian Murray ] * data/iwlwifi_error_dump: fix add_package call. (LP: #1496268) [ Sebastien Bacher ] * data/package-hooks/sources_ubiquity.py: Don't try decode() a str (LP: #1501773). -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 07 Oct 2015 10:58:13 +0200 apport (2.19-0ubuntu1) wily; urgency=medium * New upstream release: - apport: Drop re-nicing. This might decrease the time a user has to wait for apport to finish the core dump for a crashed/hanging foreground process. (See LP #1278780) - kernel_crashdump: Enforce that the log/dmesg files are not a symlink. This prevents normal users from pre-creating a symlink to the predictable .crash file, and thus triggering a "fill up disk" DoS attack when the .crash report tries to include itself. Thanks to halfdog for discovering this! (CVE-2015-1338, part of LP #1492570) - SECURITY FIX: Fix all writers of report files (package_hook, kernel_crashdump, and similar) to open the report file exclusively, i. e. fail if they already exist. This prevents privilege escalation through symlink attacks. Note that this will also prevent overwriting previous reports with the same same. Thanks to halfdog for discovering this! (CVE-2015-1338, LP: #1492570) - apport: Ignore process restarts from systemd's watchdog. Their traces are usually useless as they don't have any information about the actual reasaon why processes hang (like VM suspends or kernel lockups with bad hardware) (LP: #1433320) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 24 Sep 2015 14:41:54 +0200 apport (2.18.1-0ubuntu1) wily; urgency=medium * New upstream bug fix release. Changes since our previous snapshot: - packaging.py: Only consider first word in /etc/os-release's NAME value. This works around Debian's inconsistent value. (LP: #1408245) - Unify and simplify Package: field generation in kernel_crashdump, kernel_oops, and package_hook by using the new Report.add_package() method. (LP: #1485787) - sandboxutils.py, make_sandbox(): Make "Cannot find package which ships Executable/InterpreterPath" fatal, to save some unnecessary package unpack cycles. (LP: #1487174) * etc/apport/crashdb.conf: Enable crash reports on Launchpad for wily. Really late, sorry about that! -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 10 Sep 2015 11:48:46 +0200 apport (2.18-0ubuntu9) wily; urgency=medium * Revert changes to data/package_hook to include the package version. This just hides the problem that somewhere during whoopsie add_package_info() is not called. (See LP #1485787) * packaging-apt-dpkg.py, is_distro_package(): If there is no origin and /etc/system-image/channel.ini exists, assume the package is from a read-only system image and accept it as distro package. With this we don't need /var/lib/apt/lists/ indexes any more just to confirm the origin. (LP: #1489410) * Merge fixes from trunk: - whoopsie-upload-all: Intercept OSError too (e. g. "No space left on device"). (LP: #1476258) - apport-retrace: Only consider the file name of a source file, not its path; the latter often contains parts like "../" or directories which are specific to a build machine. This fixes most broken StacktraceSource results. (LP: #1462491) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 31 Aug 2015 11:35:54 +0200 apport (2.18-0ubuntu8) wily; urgency=medium * data/package-hooks/source_ubiquity.py: resolve tracebacks parsing syslog and adding the debug log file. -- Brian Murray <brian@ubuntu.com> Fri, 28 Aug 2015 10:03:59 -0700 apport (2.18-0ubuntu7) wily; urgency=medium * data/package_hook: When creating a Package problem write the version of the package to the report. (LP: #1485787) -- Brian Murray <brian@ubuntu.com> Mon, 17 Aug 2015 15:40:39 -0700 apport (2.18-0ubuntu6) wily; urgency=medium * Drop apport-noui from test dependencies, as whoopsie interferes with the test crashes while the test suite runs. (LP: #1478115) * Restore whoopsie dependency of apport-noui. * apport-noui.service: Add missing Type=oneshot, to fix restart limits with crashes happening in rapid succession. * Merge test fixes from trunk. * data/package-hooks/source_linux.py: Fix PEP-8 error. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 10 Aug 2015 11:25:07 +0200 apport (2.18-0ubuntu5) wily; urgency=medium * apport-noui: Remove the dependency on whoopsie as it causes test failures. -- Brian Murray <brian@ubuntu.com> Fri, 24 Jul 2015 13:23:03 -0700 apport (2.18-0ubuntu4) wily; urgency=medium * whoopsie-upload-all: restore import of apport.fileutils which seems to resolve some test failures. -- Brian Murray <brian@ubuntu.com> Thu, 23 Jul 2015 12:17:01 -0700 apport (2.18-0ubuntu3) wily; urgency=medium * apport-noui: Depend on watershed and whoopsie since whoopsie-upload-all requires whoopsie to upload crashes. * apport-noui.upstart: Utilize watershed to only launch one instance of whoopsie-upload-all. * apport-noui.paths: When monitoring /var/crash switch to PathExistsGlob since PathChanged will cause whoopsie-upload-all to run more often e.g. when .upload and .uploaded files are created. -- Brian Murray <brian@ubuntu.com> Mon, 20 Jul 2015 14:09:23 -0700 apport (2.18-0ubuntu2) wily; urgency=medium * Fix PEP-8 error in test/test_backend_apt_dpkg.py. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 17 Jul 2015 11:43:37 +0200 apport (2.18-0ubuntu1) wily; urgency=medium * New upstream release. Changes since our last merge from trunk: - apport-gtk: Use GtkWidget::valign property instead of GtkMisc::yalign which is deprecated in GTK 3.16. Thanks Iain Lane. - sandboxutils, make_sandbox(): Don't exit with 0 (success) if the ExecutablePath does not exist. (LP: #1462469) - sandboxutils, make_sandbox(): Fix second round of package installs to go into permanent root dir as well. - apt/dpkg install_packages(): If a requested package version is not available from apt in the given archive, try to download it from Launchpad. Thanks to Brian Murray! - kerneloops: Fix crash when determining the version of a custom kernel. Thanks Brian Murray. (LP: #1468154) - apt/dpkg install_packages(): Ignore -dbg packages whose descriptions contain "transitional". (LP: #1469635) - Keep "[origin: ...]" information in Package: and Dependencies: fields for native-origins.d/ origins, so that it's possible to retrace them. Thanks Brian Murray! (LP: #1470572) - Add support for retracing with discovering and enabling foreign Launchpad PPA origins, as specified in reports' Package:/Dependencies: fields. Thanks Brian Murray! - hookutils.attach_wifi(): Shorten value of CRDA if iw isn't available on the system. Thanks Brian Murray. - Fix wrong assertion in crashdb.test_check_duplicate() which surfaces under Python 3.5. (LP: #1474539) * test/test_backend_apt_dpkg.py: Disable new test assertion for unity-services-dbgsym, which doesn't currently work in the autopkgtest (but works fine in trunk and on the retracers). To be investigated. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 17 Jul 2015 11:03:21 +0200 apport (2.17.3-0ubuntu4) wily; urgency=medium * apport-gtk.ui: Use "valign" to align the icon on the crash dialog. "yalign" is deprecated with GTK 3.16 and the consequent warning causes a testsuite failure. Cherry-pick from upstream MP. -- Iain Lane <iain@orangesquash.org.uk> Fri, 05 Jun 2015 11:52:04 +0100 apport (2.17.3-0ubuntu3) wily; urgency=medium * Merge from trunk: - Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test to restore proxy settings at the right time. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 May 2015 16:01:34 +0200 apport (2.17.3-0ubuntu2) wily; urgency=medium * Merge from trunk: - Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test to more carefully restore the environment and apt config. - Enable suid_dumpable in the init.d script to also get Apport reports about suid, unreadable, and otherwise protected binaries. These will be "system reports" owned and readable by root only. - init.d script: Fix tab usage inconsistencies. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 May 2015 10:05:40 +0200 apport (2.17.3-0ubuntu1) wily; urgency=medium * New upstream release: - SECURITY UPDATE: When /proc/sys/fs/suid_dumpable is enabled, crashing a program that is suid root or not readable for the user would create root-owned core files in the current directory of that program. Creating specially crafted core files in /etc/logrotate.d or similar could then lead to arbitrary code execution with root privileges. Now core files do not get written for these kinds of programs, in accordance with the intention of core(5). Thanks to Sander Bos for discovering this issue! (CVE-2015-1324, LP: #1452239) - SECURITY UPDATE: When writing a core dump file for a crashed packaged program, don't close and reopen the .crash report file but just rewind and re-read it. This prevents the user from modifying the .crash report file while "apport" is running to inject data and creating crafted core dump files. In conjunction with the above vulnerability of writing core dump files to arbitrary directories this could be exploited to gain root privileges. Thanks to Philip Pettersson for discovering this issue! (CVE-2015-1325, LP: #1453900) - apportcheckresume: Fix "occured" typo, thanks Matthew Paul Thomas. (LP: #1448636) - signal_crashes test: Fix test_crash_setuid_* to look at whether suid_dumpable was enabled. - test/run: Run UI tests under dbus-launch, newer GTK versions require this now. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 20 May 2015 16:58:35 +0200 apport (2.17.2-0ubuntu2) wily; urgency=medium [ Brian Murray ] * Update Vcs information in debian/control. * general-hooks/ubuntu.py: update checks for corrupt packages. [ Martin Pitt ] * Disable KDE tests for the time being. apport-kde consistently crashes in PyQT5 since vivid (LP #1442512), don't block package migration on this. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 18 May 2015 08:36:07 +0200 apport (2.17.2-0ubuntu1) vivid; urgency=medium * New upstream bug fix release: - SECURITY UPDATE: Disable crash forwarding to containers. The previous fix in 2.17.1 was not sufficient against all attack scenarios. By binding to specially crafted sockes, a normal user program could forge arbitrary entries in /proc/net/unix. We cannot currently rely on a kernel-side solution for this; this feature will be re-enabled once it gets re-done to be secure. (LP: #1444518) - apport-kde: Fix crash when showing byte array values. Thanks Jonathan Riddell. (LP: #1443659) - Really create a better duplicate signature for recoverable problems, using ExecutablePath. Thanks Brian Murray. (LP: #1316763) * Disable Launchpad crash upload for final Ubuntu 15.04. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 16 Apr 2015 17:51:18 -0500 apport (2.17.1-0ubuntu2) vivid; urgency=medium * Fix crash in kde frontend LP: #1443659 -- Jonathan Riddell <jriddell@ubuntu.com> Wed, 15 Apr 2015 13:29:04 +0200 apport (2.17.1-0ubuntu1) vivid; urgency=medium * New upstream bug fix release: - SECURITY UPDATE: Fix root privilege escalation through crash forwarding to containers. Version 2.13 introduced forwarding a crash to a container's apport. By crafting a specific file system structure, entering it as a namespace ("container"), and crashing something in it, a local user could access arbitrary files on the host system with root privileges. Thanks to Stéphane Graber for discovering and fixing this! (CVE-2015-1318, LP: #1438758) - apport-kde tests: Fix imports to make tests work again. - Fix UnicodeDecodeError on parsing non-ASCII environment variables. - apport: use the proper pid when calling apport in another PID namespace. Thanks Brian Murray. (LP: #1300235) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 14 Apr 2015 09:10:17 -0500 apport (2.17-0ubuntu2) vivid; urgency=medium * Update apport-kde runtime dependencies. It requires pyqt5 not pykde4 LP: #1439784 -- Harald Sitter <sitter@kde.org> Fri, 10 Apr 2015 10:52:34 +0200 apport (2.17-0ubuntu1) vivid; urgency=medium * New upstream release. Changes since our last snapshot: - general-hooks/generic.py: Add systemd journal warnings and errors to the new "JournalErrors" field. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 31 Mar 2015 09:25:40 +0200 apport (2.16.2-0ubuntu5) vivid; urgency=medium * KDE: Port Apport to Qt 5 LP: #1436328 -- Jonathan Riddell <jriddell@ubuntu.com> Fri, 27 Mar 2015 15:09:19 +0100 apport (2.16.2-0ubuntu4) vivid; urgency=medium * general-hooks/ubuntu.py: for reports where the ProblemType is Package always include information about the apt and dpkg versions. -- Brian Murray <brian@ubuntu.com> Fri, 20 Mar 2015 13:23:45 -0700 apport (2.16.2-0ubuntu3) vivid; urgency=medium * package-hooks/source_linux.py: Don't check BootDmesg for staging drivers anymore since it is no longer included in the crash report. (LP: #1430168) -- Brian Murray <brian@ubuntu.com> Wed, 11 Mar 2015 12:57:05 -0700 apport (2.16.2-0ubuntu2) vivid; urgency=medium * Merge from trunk: - Adjust signal_crashes.test_crash_setuid_{keep,drop} for systemd. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 09 Mar 2015 11:32:18 +0100 apport (2.16.2-0ubuntu1) vivid; urgency=medium * New upstream bug fix release: - ProblemReport: Set a timestamp of 0 in gzip compressed fields; they are meaningless and cause unnecessary jitter in the output. - launchpad backend: Fix unclosed file in upload(). - launchpad backend: Fix wrong use of filter() with Python 3. - launchpad backend download(): Try to convert textual values from byte arrays into into strings. - ui.py, collect_info(): Fix crash on bug pattern checking with broken gzipped values. (LP: #1345653) - hookutils, attach_drm_info(): Avoid UnicodeDecodeErrors in Python 3 when reading binary files. Thanks Chad Miller. (LP: #1425254) - apport-gtk: Update legacy icon names to modern GTK ones, to fix icons under GNOME. Thanks Scott Sanbar. (LP: #1422176) - Move backend_apt_dpkg testsuite to use Ubuntu 14.04 LTS. - hookutils, attach_dmesg(): Only attach dmesg as CurrentDmesg, drop BootDmesg as /var/log/dmesg is upstart specific and thus not reliably correct any more. - hookutils, recent_syslog(): Read system logs from the journal when running under systemd, and fall back to /var/log/syslog if not. - hookutils, attach_mac_events(): Read kernel violation messages from dmesg instead of /var/log/kern.log, as that's specific to rsyslog and its configuration. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 02 Mar 2015 11:37:32 +0100 apport (2.16.1-0ubuntu2) vivid; urgency=medium * Merge from trunk: - hookutils.in_session_of_problem(): Check $XDG_SESSION_ID and /run/systemd/sessions instead of the cgroup, as the latter does not work under cgmanager. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Feb 2015 12:52:00 +0100 apport (2.16.1-0ubuntu1) vivid; urgency=medium * New upstream release: - Set gettext translation domain in setup.cfg, so that tools like dh_translations pick it up and show correct polkit translations. Thanks to Aron Xu! (LP: #1306857) - Report.get_logind_session(): Check $XDG_SESSION_ID and /run/systemd/sessions instead of the cgroup, as the latter does not work under cgmanager. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Feb 2015 11:39:05 +0100 apport (2.16-0ubuntu1) vivid; urgency=medium * New upstream release: - Add a new method ProblemReport.extract_keys() which writes binary keys (which can be very large) directly to files without loading them all into memory first. Use that in apport-unpack. Thanks Louis Bouchard! (LP: #1307413) - launchpad backend: Work with Python 3, now that launchpadlib exists for Python 3. (LP: #1153671) - apport-bug, apport-gtk: Also check for $WAYLAND_SESSION, to use apport-gtk instead of apport-cli under Wayland. Thanks Tim Lunn. (LP: #1418766) - apport-gtk: When running under Wayland, avoid Gdk/Wnck operation for setting crash window modal to the PID of the crashed window; these only work under X11. - Don't install the test suite any more, to save 1 MB of installed space. It can be run out of trunk easily enough, and distributions can install it from tests/ if they desire. - hookutils, attach_root_command_outputs(): Fix UnicodeDecodeError crash for non-textual values. (LP: #1370259) - ui.py: Only provide a UI to hooks if the crash db will accept the report. This avoids asking questions if the report is merely sent to whoopsie for Ubuntu stable releases. Thanks Brian Murrary. (LP: #1084979) - whoopsie-upload-all: Add package information to the report before calling package hooks. Thanks Brian Murray. - Fix check for available terminal when checking whether to display the "Examine locally" button. * Add general hook for detecting Wayland sessions and tagging them with "wayland-session". Thanks Timm Lunn! (LP: #1418262) * debian/tests/upstream-system: Copy tests from source tree, as /usr/share/apport/testsuite/ does not exist any more. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 06 Feb 2015 10:11:30 +0100 apport (2.15.1-0ubuntu4) vivid; urgency=medium * data/whoopsie-upload-all: need to add package information to the report before we can add package specific information to it. -- Brian Murray <brian@ubuntu.com> Mon, 26 Jan 2015 10:06:06 -0800 apport (2.15.1-0ubuntu3) vivid; urgency=medium * etc/apport/crashdb.conf: Enable crash reports on Launchpad for vivid. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 26 Jan 2015 17:57:03 +0100 apport (2.15.1-0ubuntu2) vivid; urgency=medium * Add systemd units for apport-noui. * Merge from trunk: - hookutils, attach_root_command_outputs(): Fix UnicodeDecodeError crash for non-textual values. (LP: #1370259) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 08 Jan 2015 17:33:12 +0100 apport (2.15.1-0ubuntu1) vivid; urgency=medium * New upstream release. Changes since last snapshot: - apt/dpkg _search_contents(): Check HTTP last-modified header to avoid re-downloading Contents.gz every day unless it actually changed. Thanks Brian Murray! - apport-gtk: Drop properties which are deprecated in GTK 3.14. * debian/tests/control: Wrap dependencies. * debian/tests/control: Add gnome-icon-theme; fixes running tests with GTK 3.14. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 19 Dec 2014 07:45:30 +0100 apport (2.15-0ubuntu3) vivid; urgency=medium * Merge further test robustification and translation updates from trunk. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 16 Dec 2014 11:01:20 +0100 apport (2.15-0ubuntu2) vivid; urgency=medium * Merge from trunk: - Robustify report.test_get_timestamp test. - Robustify signal_crashes.test_limit_size test. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 04 Dec 2014 09:19:29 +0100 apport (2.15-0ubuntu1) vivid; urgency=medium * New upstream release. Changes since our snapshot: - recoverable_problem: Handle the parent process going away while we're attempting to read from proc. - apport-retrace: Stop considering a package download error as transient; it can too easily lead to unnoticed eternal retry loops. - whoopsie-upload-all: Refactor to behave more reliably in case of overlapping crash processing. Thanks Steve Langasek and Brian Murray. (LP: #1354318) - whoopsie-upload-all: Remove crash reports that have a core dump which is broken and cannot be processed by gdb. Thanks Brian Murray. (LP: #1376374) - When core size exceeds the limit (3/4 of available memory) and thus the core dump is skipped, log this to /var/log/apport.log. (LP: #1387835) - apport-gtk: Fix jump-to-top on first click of the details treeview. Thanks Marius Gedminas. (LP: #1387328) - apport-retrace: Fix location of cached Contents.gz when using --sandbox-dir. (LP: #1394798) - Fix backend_apt_dpkg.test_install_packages_permanent_sandbox test case with proxy env variables with latest apt. * Update Vcs-Bzr: for vivid branch. * debian/tests: Drop obsolete workarounds, use allow-stderr. * Bump Standards-Version to 3.9.6 (no changes necessary). -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 02 Dec 2014 14:51:59 +0100 apport (2.14.7-0ubuntu10) vivid; urgency=medium * data/whoopsie-upload-all: confirm that the crash file exists before trying to remove it. (LP: #1384358) -- Brian Murray <brian@ubuntu.com> Mon, 03 Nov 2014 17:01:55 -0800 apport (2.14.7-0ubuntu9) vivid; urgency=medium * data/general_hooks/clickinfo.py: Created a hook to determine package and version information for executables that are from click packages. -- Brian Murray <brian@ubuntu.com> Fri, 31 Oct 2014 14:41:14 -0700 apport (2.14.7-0ubuntu8) utopic; urgency=medium * etc/init.d/apport: Stop setting $PATH in the init.d script. It breaks assumptions from /lib/lsb/init-functions.d/ which might call other tools which are not in /bin; also, we generally shouldn't meddle with $PATH in individual scripts. (LP: #1372665) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 20 Oct 2014 14:51:41 -0400 apport (2.14.7-0ubuntu7) utopic; urgency=medium * Disable Launchpad crash upload for final Ubuntu 14.10. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 15 Oct 2014 15:37:02 +0200 apport (2.14.7-0ubuntu6) utopic; urgency=medium * data/recoverable_problem: Fix a Traceback with how the ValueError was matched. (LP: #1345569) -- Brian Murray <brian@ubuntu.com> Mon, 13 Oct 2014 10:02:21 -0700 apport (2.14.7-0ubuntu5) utopic; urgency=medium [ Evan Dandrea] * data/recoverable_problem: Handle the parent process going away while we're attempting to read from proc. (LP: #1345569) -- Brian Murray <brian@ubuntu.com> Tue, 07 Oct 2014 15:26:30 -0700 apport (2.14.7-0ubuntu4) utopic; urgency=medium * data/whoopsie-upload-all: remove crash reports that have a core dump which is broken and cannot be processed by gdb. (LP: #1376374) -- Brian Murray <brian@ubuntu.com> Tue, 07 Oct 2014 14:48:28 -0700 apport (2.14.7-0ubuntu3) utopic; urgency=medium [ Steve Langasek ] * Refactor apport-noui/whoopsie-upload-all to behave more reliably in case of overlapping crash processing (LP: #1354318): - debian/apport-noui.upstart: refactor to make this an 'instance' job for each incoming .crash file, and drop the racy handling of non-root .crash files (as well as the unnecessary 'env MATCH' line). - data/whoopsie-upload-all: refactor report processing to ensure that whoopsie-upload-all can be called multiple times in parallel without causing any .crash file to be processed more than once. - data/whoopsie-upload-all: handle setting ownership of files in process_report() instead of relying on this script being called by a particular user. - data/whoopsie-upload-all: don't spin in wait_uploaded() watching for .uploaded files if the corresponding .upload file has been removed out from under us. - data/whoopsie-upload-all: by default, return immediately instead of waiting to see if whoopsie processes all of the crashes. [ Brian Murray ] * data/whoopsie-upload-all: indicate that all reports have been uploaded even those that were marked for upload earlier. -- Brian Murray <brian@ubuntu.com> Thu, 02 Oct 2014 08:33:49 -0700 apport (2.14.7-0ubuntu2) utopic; urgency=medium [ Brian Murray ] * data/general-hooks/ubuntu.py: check to see if system-image-cli is available rather than if /etc/system-image/client.ini exists. [ Martin Pitt ] * ui.py: Robustify check if apport-retrace is installed. This brings back the "Examine locally" UI option. (LP: #1358734) (Cherry-picked from trunk). -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 04 Sep 2014 12:30:27 +0200 apport (2.14.7-0ubuntu1) utopic; urgency=medium * New upstream release: - Fix interpretation of core dump ulimits: they are in bytes, not KiB. (LP: #1346497) - apport-retrace: Don't require specifying an operation; default to updating the given .crash file. (LP: #1361242) - Write report even on UnreportableReasons, so that whoopsie can still upload them. (LP: #1360417) - apt/dpkg install_packages(): Write a "packages.txt" into sandbox root directory to keep track of installed packages and their versions. Prerequisite for LP #1352591. - apt/dpkg install_packages(): Avoid re-downloading/installing packages which are already installed into a permanent sandbox. Prerequisite for LP #1352591. - sandboxutils.py, make_sandbox(): Drop check for already existing files when dynamically resolving libraries and ExecutablePaths; with that, these packages would never get updated in a permanent sandbox. The new version tracking from above now takes care of that. (LP: #1352591) - Fix report.test_add_proc_info test to stop assuming that pid 1 is named "init", as one can specify a different one on the kernel command line. - report.py, add_gdb_info(): Check for truncated core dumps, and set UnreportableReason and raise an IOError on them. Handle this in apport-retrace and whoopsie-upload-all to fail properly instead of silently producing broken Stacktraces. (LP: #1354571) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 29 Aug 2014 12:38:54 +0200 apport (2.14.6-0ubuntu2) utopic; urgency=medium * Cherry-pick from trunk: Adjust backend_apt_dpkg.test_get_file_package() test: newer util-linux versions do not provide /etc/blkid.tab any more. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Aug 2014 10:38:44 +0200 apport (2.14.6-0ubuntu1) utopic; urgency=medium * New upstream bug fix release: - general-hooks/generic.py: Fix hook crash if there are non-distro libraries and no user interface. - collect_info(): Don't assume that reports have a ProblemType. Fixes crashes with apport-collect. (LP: #1325729) - apport-retrace: Declare -s/-g/-o as mutually exclusive, to get proper error messages instead of silent misbehaviour. (LP: #1352450) - apport-gtk: Drop usage of deprecated GTK stock items. (LP: #1348116) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 18 Aug 2014 07:57:16 +0200 apport (2.14.5-0ubuntu4) utopic; urgency=medium [ Steve Langasek ] * Fix invalid shebang lines for apport-noui maintainer scripts which I somehow overlooked. [ Martin Pitt ] * Add data/general-hooks/powerpc.py: Collect some PowerPC[64] information. Thanks to Thierry FAUCK! (LP: #1336462) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 08 Aug 2014 15:13:16 +0200 apport (2.14.5-0ubuntu3) utopic; urgency=medium * apport-noui: make the package installation automatically enable autosubmission, which doesn't currently work on the phone without it; and update the package description accordingly. LP: #1351137. -- Steve Langasek <steve.langasek@ubuntu.com> Fri, 01 Aug 2014 15:06:49 -0700 apport (2.14.5-0ubuntu2) utopic; urgency=medium * data/general-hooks/ubuntu.py: Check for /etc/system-image/client.ini instead of /var/log/system-image/client.log since the latter is only readable by root. -- Brian Murray <brian@ubuntu.com> Tue, 29 Jul 2014 13:20:54 -0700 apport (2.14.5-0ubuntu1) utopic; urgency=medium * New upstream bug fix release. Changes since last snapshot: - apt/dpkg get_file_package(): If checking for uninstalled packages, don't use package information from the host system, but always look it up in the correct indexes. Otherwise this returns wrong results when files move to a different package between releases. Thanks Brian Murray! (LP: #1336062) - apt/dpkg install_packages(): Disable fetching apt translation indexes, to save some bandwidth. - whoopsie-upload-all: Ignore crash reports with incomplete core dumps instead of crashing on them. Thanks Brian Murray. (LP: #1329520) - etc/default/apport: Fix comment to use "service" instead of calling the init.d script directly. - whoopsie-upload-all: Collect hooks information to gather ApportVersion, NonfreeKernelModules, and SystemImageInfo. Do this before collecting package data to minimize hook run time. (LP: #1349579) - Adjust report.test_get_logind_session test to work with systemd >= 205. - Fix report.test_check_interpreted_twistd test to skip instead of fail if twisted is not installed. * Drop automatix.py general hook. Automatix is long gone. * etc/apport/blacklist.d/apport: Drop long obsolete npviewer/npplayer entries. * Drop unnecessary python-gi build dependency. * Drop python-twisted-core build dependency. It's just used for one test, and will still run in autopkgtest. (Avoids current twisted uninstallability in main) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 29 Jul 2014 12:26:23 +0200 apport (2.14.4-0ubuntu3) utopic; urgency=medium * In apport-kde recommend gdb-minimal before gdb LP: #1347565 "apport recommends gdb" -- Jonathan Riddell <jriddell@ubuntu.com> Wed, 23 Jul 2014 12:35:16 +0200 apport (2.14.4-0ubuntu2) utopic; urgency=medium * Merge from trunk: - apport-bug: Stop checking the autoreport flag and calling whoopsie-upload-all; these two are different tasks, and that breaks bug reporting. (LP: #1339663) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 10 Jul 2014 17:18:33 +0200 apport (2.14.4-0ubuntu1) utopic; urgency=medium * New upstream bug fix release: - Adjust code to match latest pep8 checker. - Report.crash_signature_addresses(): Drop kernel architecture from StacktraceAddressSignature field. It isn't useful there (at most the ELF architecture, but we don't really need that either). This makes it easier to regenerate broken signatures from existing reports on different architectures. (LP: #1336565) * Fix PEP-8 errors in Ubuntu hooks. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 03 Jul 2014 06:50:06 +0200 apport (2.14.3-0ubuntu2) utopic; urgency=medium * Turn on Launchpad crash submission for the devel series. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 18 Jun 2014 15:40:26 +0200 apport (2.14.3-0ubuntu1) utopic; urgency=medium * New upstream bug fix release: - Add kernel package version to the various kernel-related hooks. Thanks Brian Murray. (LP: #1316845) - Use package name in duplicate signature for recoverable problems. Thanks Brian Murray. (LP: #1316763) - Have whoopsie-upload-all upload recoverable problems. Thanks Brian Murray. (LP: #1319099) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 30 May 2014 15:35:53 +0200 apport (2.14.2-0ubuntu4) utopic; urgency=medium * data/package-hooks/source_linux.py: create a duplicate signature for suspend resume failures. (LP: #1316841) -- Brian Murray <brian@ubuntu.com> Fri, 16 May 2014 09:46:51 -0700 apport (2.14.2-0ubuntu3) utopic; urgency=medium * debian/apport-noui.upstart: remove early exit (LP: #1235436) * debian/apport-noui.dirs: create /var/lib/apport (LP: #1235436) -- Brian Murray <brian@ubuntu.com> Wed, 14 May 2014 12:26:39 -0700 apport (2.14.2-0ubuntu2) utopic; urgency=medium * Merge "backend_apt_dpkg.test_install_packages_versioned: Fix namespacing of ver" fix from trunk, to better debug the autopkgtest failure on i386. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 May 2014 17:30:39 +0200 apport (2.14.2-0ubuntu1) utopic; urgency=medium * New upstream release: - Move error handling for invalid .crash files into collect_info(), so that it also applies when using the "Show Details..." button in the UI. Otherwise the UI just hangs eternally at this point when encountering broken core dumps. (LP: #1282349) - apt/dpkg install_packages(): Try to install the requested package version instead of always picking the most recent one. This should improve retracing results for older crash reports. Thanks to Brian Murray for inspiring this. - sandboxutils.py, make_sandbox(): When determining packages to install from ProcMaps, look up and use the package versions from the reporter, to improve retracing results. Thanks Brian Murray for the initial patch! - iwlwifi_error_dump: Make reports private, and subscribe canonical-kernel-team. Thanks Seth Forshee. (LP: #1313818) - signal_crashes test: Time out after 5 seconds if the test process does not terminate on the specified signal, to avoid eternal hangs. - signal_crashes test: Ensure that we don't inherit an ignored SIGQUIT from the caller. * Switch Vcs-* to utopic branch. * Add build-essential test dependency, some tests call gcc. * Install iwl_wifi_error_dump and corresponding udev rules. (Second part of LP: #1313818) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 30 Apr 2014 14:07:17 +0200 apport (2.14.1-0ubuntu3) trusty; urgency=medium * Cherry-pick from trunk: Delay the import of the glob and re modules in the python apport hook, and only import them when needed. Speeds up interpreter startup time by 50%. (LP: #1307684) -- Matthias Klose <doko@ubuntu.com> Tue, 15 Apr 2014 08:42:00 +0200 apport (2.14.1-0ubuntu2) trusty; urgency=medium * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the final release. Only report to http://errors.ubuntu.com from now on. -- Brian Murray <brian@ubuntu.com> Thu, 10 Apr 2014 14:26:24 -0700 apport (2.14.1-0ubuntu1) trusty; urgency=medium * New upstream bug fix release: - Fix FileNotFoundError from temporary launchpadlib cache dir cleanup. (LP: #1300474) - ui.py, open_url(): Skip any Python cleanup/atexit handlers in the forked xdg-open child, to avoid calling them twice. (Side issue of LP #1300474 and #1282713) - apport-kde: Work around crash in sip by skipping the destructors of SIP objects. Thanks Rohan Garg! (LP: #1282713) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 04 Apr 2014 15:34:06 +0100 apport (2.14-0ubuntu1) trusty; urgency=medium * New upstream release: - Add KernelCrash reports when iwlwifi encounters a firmware error (via the "error_dump" uevent and the new iwlwifi_error_dump helper). Thanks Seth Forshee! - launchpad: Really use a temporary launchpadlib cache dir by default. This avoids piling up gigabytes of useless cached data over time, which also tends to break every now and then. - Fix crash in logind session detection. Thanks Dimitri Ledkov! (LP: #1296026) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 31 Mar 2014 11:47:19 +0200 apport (2.13.3-0ubuntu1) trusty; urgency=medium [ Martin Pitt ] * New upstream release: - etc/cron.daily/apport: Cleanup .drkonqi files after 7 days. Thanks Harald Sitter. - ui.py: Try to grab session D-BUS address from user's session when being called through pkexec. (LP: #1287460) [ Brian Murray ] * data/package-hooks/source_linux.py: ensure dupe_sig1 and dupe_sig2 are None if they are not found -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 07 Mar 2014 16:34:45 +0100 apport (2.13.2-0ubuntu5) trusty; urgency=medium * data/package-hooks/source_linux.py: remove line feed from DuplicateSignature as it causes issues on the error tracker -- Brian Murray <brian@ubuntu.com> Tue, 18 Feb 2014 13:36:50 -0800 apport (2.13.2-0ubuntu4) trusty; urgency=medium * data/kernel_oops: include the package version in addition to the name -- Brian Murray <brian@ubuntu.com> Fri, 14 Feb 2014 14:09:39 -0800 apport (2.13.2-0ubuntu3) trusty; urgency=medium * package-hooks/source_linux.py: create a DuplicateSignature for kernel oops reports thereby allowing them to be bucketed and consolidated in the Ubuntu error tracker -- Brian Murray <brian@ubuntu.com> Thu, 13 Feb 2014 14:33:07 -0800 apport (2.13.2-0ubuntu2) trusty; urgency=medium * Merge from trunk: - Fix backend_apt_dpkg.test_get_file_package_uninstalled test that got broken in the previous release. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 27 Jan 2014 15:21:06 +0100 apport (2.13.2-0ubuntu1) trusty; urgency=medium * New upstream bug fix release: - Fix crash if systemd cgroup is unreadable in /sys, such as in containers. (LP: #1270783) - apt/dpkg: Also consider Contents.gz from updates/security/proposed pockets, so that e. g. apport-retrace works for crash reports with files that are new in those. Thanks to Brian Murray for the initial patch. (LP: #1271258) - Only drop internal/private keys (starting with '_') from uploading to the crash DB and from the UI report views, but not already when updating the report. (LP: #1272505) - data/apport: Fix stdout/stderr initialization of the error log, don't close the original fd after dup2'ing as it is usually already fd 1. This makes Apport work with Python 3.4. (LP: #1272355) - Adjust report tests to work with Python 3.4 (LP: #1272355) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 27 Jan 2014 11:33:51 +0100 apport (2.13.1-0ubuntu2) trusty; urgency=medium * debian/apport.upstart: Use running-in-container instead of checking init's environment. * Re-enable Launchpad crash reports for Trusty. (LP: #1271887) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 24 Jan 2014 17:34:56 +0100 apport (2.13.1-0ubuntu1) trusty; urgency=medium * New upstream release: - Fix report.test_get_timestamp test for running in other time zones. - Fix erroneous "gdb-multiarch not installed" warnings in ui tests. - Fix ui.test_run_crash_older_session test for running as root. - Fix ui.test_run_crash_older_session for different file system file orders. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 10 Jan 2014 10:58:54 +0100 apport (2.13-0ubuntu1) trusty; urgency=medium * New upstream release. Changes since our previous merge: - Do not report keys starting with '_' to the crash database. This can be used for keeping private keys in .crash files between crash and report time, or to store data between hooks etc., without cluttering reports. - UI: In "run all pending crashes" mode, skip reports that happened during logout in a desktop (specifically, logind) session; they are uninteresting and confusing to see at the next login. (LP: #1033932) They can still be reported manually with running the .crash file directly, but this sufficiently reduces the need to explicitly flag whether the report concerns a logout crash. (LP: #1067646) - Add support for PID namespaces (Linux containers): Crashes originating from a container on a system running a >= 3.12 kernel will be automatically redirected to apport inside the container, or ignored if apport is not installed in the container. Thanks to Stéphane Graber! - Print a warning when trying to retrace a report from a foreign architecture and gdb-multiarch is not installed. (LP: #1239395) - etc/init.d/apport: Don't change core_pattern when running in a container, as this influences the host and other containers, too. * apport/ui.py: Rename "MarkForUpload" whoopsie hack field to "_MarkForUpload" and remove delta from launchpad.py. Fields starting with '_' are now considered private. * debian/apport.upstart: Add "%P" macro to core_pattern, to enable Linux container handling with upstart. * debian/apport.upstart: Don't change core_pattern when running in a container, as this influences the host and other containers, too. (LP: #1267728) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 10 Jan 2014 09:07:07 +0100 apport (2.12.7-0ubuntu6) trusty; urgency=medium * Merge from trunk: - setup.py: Make updating of hashbangs work when building without Java, and also apply it on bin/. * Bump Standards-Version to 3.9.5, no changes necessary. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 07 Jan 2014 18:41:12 +0100 apport (2.12.7-0ubuntu5) trusty; urgency=low * Modify the location of apport/autoreport from /etc to /var/lib to be more compatible with phablet images. Remove instance from apport-noui upstart job. (LP: #1235436) -- Brian Murray <brian@ubuntu.com> Mon, 06 Jan 2014 13:00:41 -0800 apport (2.12.7-0ubuntu4) trusty; urgency=medium * In python3 (unlike python2) file object does not have "splitlines()" method, instead one iterate over the lines in the file directly. (LP: #1265735) -- Dimitri John Ledkov <xnox@ubuntu.com> Fri, 03 Jan 2014 08:36:55 +0000 apport (2.12.7-0ubuntu3) trusty; urgency=medium * Merge from trunk: - test_signal_crashes: Clean up unexpected reports after every test, to avoid breaking all subsequent tests. - test_signal_crashes: Stop checking that gdb prints nothing on stderr, as latest gdb 7.6.50 now almost always prints some about missing source files. * During package build, only run subset of tests that work on buildds, and make any failure fail the build. The full test suite is run as autopkgtest. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Dec 2013 08:29:02 +0100 apport (2.12.7-0ubuntu2) trusty; urgency=low * data/package-hooks/source_ubiquity.py: only warn people about passwords in the debug log file if they are running in debug mode (LP: #1257159) * data/general-hooks/ubuntu.py: gather more information for dpkg already installed and configured package install failures -- Brian Murray <brian@ubuntu.com> Mon, 09 Dec 2013 14:20:12 -0800 apport (2.12.7-0ubuntu1) trusty; urgency=low [ Martin Pitt ] * New upstream release: - Properly fall back to lsb_release if /etc/os-release is invalid. - report.py, add_proc_info(): Add "CurrentDesktop" field with the value of $XDG_CURRENT_DESKTOP, if present. (LP: #1247904) - fileutils.py, get_all_system_reports(): Filter out "guest..." users, they might have a system UID. (LP: #1250679) - apt/dpkg: Don't call dpkg-divert with full path, it moved in Ubuntu 14.04. (LP: #1252305) * launchpad.py: Ignore "MarkForUpload" field, it's just for internal communication with whoopsie. [ Andy Whitcroft ] * package-hooks/source_linux.py: pull forward fix to generify linux-meta to linux mapping. (LP: #1229611) * package-hooks/source_linux.py: pull forward kernel tagging for linux-lts- family kernels. (LP: #1229611) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Nov 2013 09:11:53 +0100 apport (2.12.6-0ubuntu1) trusty; urgency=low * New upstream security/bug fix release: - SECURITY FIX: For setuid programs which drop their privileges after startup, make the report and core dumps owned by root, to avoid possible data disclosure. Also, change core dump files to permissions "0600". Thanks to Martin Carpenter for discovering this! (CVE-2013-1067, LP: #1242435) - sandboxutils.needed_runtime_packages(): Create cache directory for Contents.gz if missing. (LP: #933199) - apt/dpkg: Recognize options in apt sources.list. (LP: #1238620) * Move Vcs-Bzr to trusty branch. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 25 Oct 2013 06:49:19 +0200 apport (2.12.5-0ubuntu2) saucy; urgency=low * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the final release. Only report to http://errors.ubuntu.com from now on. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 11 Oct 2013 12:11:45 +0200 apport (2.12.5-0ubuntu1) saucy; urgency=low * New upstream bug fix release: - Report.add_os_info(): Do not overwrite already existing data. (LP: #1226776) - kernel_oops hook: Collect uname at the time of invoking the hook, instead of at data collection time. (LP: #1226776) - Replace fixed size icons with PNGs, which are more efficient and avoid rendering artifacts. (LP: #1231763) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 27 Sep 2013 05:56:30 +0200 apport (2.12.4-0ubuntu1) saucy; urgency=low * New upstream release: - Update icons to new design from Vishnoo Charan Reddy, many thanks! (LP: #1079639) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Sep 2013 13:27:03 -0500 apport (2.12.3-0ubuntu1) saucy; urgency=low * New upstream bug fix release: - ProblemReport.write_mime(): Adjust MIMEText handling to latest Python 3.3 upstream changes which now don't tolerate passing bytes any more. (LP: #1227381) - apport-gtk: Don't use obsolete add_with_viewport() method any more. - Fix ui_present_report_details() "modal_for" keyword for all UI implementations, so that --hanging works for -cli and -kde, too. (LP: #1213790) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Sep 2013 10:36:06 -0500 apport (2.12.2-0ubuntu1) saucy; urgency=low * New upstream bug fix release. Changes since previous snapshot: - crash-digger: Write pid into lock file. Thanks Steve Langasek. - apport-gtk: When loading a Bug report from a file, properly set up for bug reporting mode. (LP: #1226140) - Move "program is not installed any more" check from report loading into data collection, so that crash reports can be moved and reported on machines without that program installed. (LP: #1226030) * data/general-hooks/ubuntu.py: Add output of "system-image-info -i" to reports as field "SystemImageInfo", to better identify phablet builds. (LP: #1225113) * Add gdb-minimal dependency to apport-noui, as for crashes we always need a StacktraceAddressSignature at least. (part of LP #1226030) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 17 Sep 2013 16:25:55 -0500 apport (2.12.1-0ubuntu4) saucy; urgency=low * whoopsie-upload-all: Add a -t/--timeout option. In Jenkins we don't want to block on upload for 30 mins, but it's still a reasonable timeout on phones. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 12 Sep 2013 11:50:22 -0400 apport (2.12.1-0ubuntu3) saucy; urgency=low * data/general-hooks/ubuntu-gnome.py: Add tag when using the gnome3-next PPA. * data/general-hooks/cloud_archive.py: Fix IndexError if Package field does not exist. * Merge from trunk: - fileutils.py, get_{new,all}_reports(): Don't consider reports which are readable, but not writable. (LP: #1098844) - test_ui_kde.py: Cleanly skip the test if PyQt/PyKDE are not installed, instead of failing. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 30 Aug 2013 12:42:01 +0200 apport (2.12.1-0ubuntu2) saucy; urgency=low * Don't provide arguments to whoopsie-upload-all. It doesn't take any. * Do not attempt to install the now dead apport-noui frontend. -- Evan Dandrea <ev@ubuntu.com> Mon, 19 Aug 2013 15:25:05 +0100 apport (2.12.1-0ubuntu1) saucy; urgency=low [ Martin Pitt ] * New upstream release. Changes since our previous snapshot: - Drop apport-noui in favour of whoopsie-upload-all. We don't want to process hooks when run noninteractively, since they may ask questions or determine a report is not due to a bug in Ubuntu. whoopsie-upload-all skips these hooks. - apport/report.py: Gracefully handle being unable to get the source package for a binary package, as when the latter does not exist in the cache. (LP: #1097773) * data/general-hooks/ubuntu-gnome.py: Switch to Tim Lunn's duplicate DB for the Ubuntu GNOME PPA. [ Evan Dandrea ] * Call whoopsie-upload-all from the apport-noui upstart job instead of the now-dead apport-noui frontend. -- Evan Dandrea <ev@ubuntu.com> Mon, 19 Aug 2013 14:42:26 +0100 apport (2.12-0ubuntu3) saucy; urgency=low * Add an upstart job and package to handle automatic error reporting. -- Evan Dandrea <ev@ubuntu.com> Tue, 06 Aug 2013 11:17:48 +0100 apport (2.12-0ubuntu2) saucy; urgency=low * Merge from trunk: - sandboxutils.py, make_sandbox(): Install packages from Package: and Dependencies: fields also if we have a ProcMaps: field and there are any third-party packages. This fixes retracing crashes that use PPAs (as they don't have Contents.gz). - Robustify "progress bar visible" GTK and KDE UI checks for the faster collection due to dropping lsb_release. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 Aug 2013 16:03:43 +0200 apport (2.12-0ubuntu1) saucy; urgency=low * New upstream release: - recoverable_problem: Can take the PID as an argument. - Add data/whoopsie-upload-all: Process all pending crashes and mark them for whoopsie upload, but do not upload them to any other crash database. Wait until whoopsie is done uploading. - Eliminate multiple calls to lsb_release by caching the result. On systems which provide /etc/os-release, use that instead of lsb_release. (LP: #1164742) - launchpad.py: Show the Python major version in the error message about missing launchpadlib. - ui.py: Check if options for updating and reporting a new bug get used together, and give a proper error message in this case. (LP: #1071905) - apport: Fix "Exectuable" typo, leading to reports not being synced on upstart crashes. Thanks James Hunt. (LP: #1203744) - Rename apport-gtk-mime.desktop to apport-gtk.desktop and drop the old apport-gtk.desktop that wasn't even being installed. With that, the window will be shown as "Report a problem..." instead of "Apport-gtk" in GNOME shell and other DEs. Thanks Jeremy Bicha. (LP: #1207496) - report.py, add_gdb_info(): Fix crash if gdb cannot load the symbol map. (LP: #1171484) - apport-retrace: Fix crash when using --sandbox without --cache. (LP: #1197034) - Fix error message when PID is inaccessible. (LP: #1204718) - doc/data-format.tex: Drop unused "OS" and "OSRelease" fields, replace with "DistroRelease" which is actually being used. (LP: #1018387) * debian/apport-gtk.install: Adjust for desktop file rename. * debian/apport.install: Install whoopsie-upload-all. * launchpad.py: Show package name in 'launchpadlib not installed' error message, and give a more direct error message when trying to use this through Python 3. (LP: #1071905) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 Aug 2013 11:30:12 +0200 apport (2.11-0ubuntu1) saucy; urgency=low * New upstream release: - data/apport-noui: A noninteractive frontend for automatic error reporting. apport-bug will use this if the /etc/apport/autoreport flag file exists. - hookutils.py, attach_upstart_logs(): Also attach ~/.cache/upstart/application-<desktopname>.log for any *.desktop file shipped by a package. * debian/apport.install: Ship the new apport-noui frontend. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 17 Jul 2013 09:48:42 +0200 apport (2.10.2-0ubuntu4) saucy; urgency=low [ Brian Murray ] * Avoid a crash when handling dpkg terminal log files with unicode data in them [ Evan Dandrea ] * Fix the order of suid_dumpable and core_pattern. Thanks Seth Arnold (LP: #1194541). -- Evan Dandrea <ev@ubuntu.com> Mon, 08 Jul 2013 15:50:49 +0100 apport (2.10.2-0ubuntu3) saucy; urgency=low * Enable suid_dumpable (core dumps of setuid binaries). This has always been safe for us, as we set a core pipe handler, but the kernel now protects against one not being set: http://kernel.ubuntu.com/git?p=ubuntu/ubuntu- raring.git;a=blob;f=Documentation/sysctl/fs.txt;h=88152f214f48cb69c6 43d4bf2ff2ac9a61ad2eb0;hb=HEAD -- Evan Dandrea <ev@ubuntu.com> Tue, 25 Jun 2013 15:37:01 +0100 apport (2.10.2-0ubuntu2) saucy; urgency=low [ Brian Murray ] * data/general-hooks/ubuntu.py: - Resolve crash in duplicate signature calculation when the package is not installed (LP: #1184121) - Remove unusable check for previous package install failures - Fix indentation of package-conflict check [ Martin Pitt ] * Raise python-apport's "Suggests: python launchpadlib" to Depends:, as the only reason why to install this package is for apport-collect these days. (LP: #1192330) * Merge from trunk: - hookutils.py, attach_conffiles(): Fix check for inaccessible or modified conffiles. (LP: #1192899) - Updated translations from LP. * etc/apport/crashdb.conf: Enable crash reports on Launchpad for saucy. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 21 Jun 2013 07:16:00 +0200 apport (2.10.2-0ubuntu1) saucy; urgency=low * New upstream bug fix release: - Resolve symlinks in file references in Python crash signatures. (LP: #1179979) - Fix endless loop of EOFErrors with broken core dumps. (LP: #1168849) - report.py, add_gdb_info(): Fix crash if gdb did not determine an assertion message. (LP: #1171484) - apt/dpkg: Fix get_file_package()'s "release" field to actually mean DistroRelease:, not a distro code name. This now requires a previous call to install_packages() with a configdir, which needs to have a file <configdir>/<release>/codename with the release's code name in it. - sandboxutils.py: Call get_file_package() with the report's release, so that we actually get files from the target release, not the host release. - test_hookutils.py: Don't assume that /etc/motd exists. * Move to dh compat level 9. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 22 May 2013 12:39:21 +0200 apport (2.10.1-0ubuntu1) saucy; urgency=low * New upstream bug fix release: - Fix ui.test_run_crash_anonymity_escaping test when running as root. - launchpad.py: Fix crash when trying to adjust a distro-only bug task if the bug also already has a distropackage task. - apt/dpkg: When there is no -dbg package, install all -dbg packages of the corresponding source package, and only then fall back to -dbgsym. (LP: #1003234) * data/general-hooks/ubuntu.py: Fix PEP8 error, to make test suite run again. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 14 May 2013 16:43:09 +0200 apport (2.10-0ubuntu3) saucy; urgency=low * data/general-hooks/cloud_archive.py: deal with the case where a bug is being reported about a package that is not installed (LP: #1173240) -- Brian Murray <brian@ubuntu.com> Mon, 06 May 2013 08:29:51 -0700 apport (2.10-0ubuntu2) saucy; urgency=low * data/general-hooks/ubuntu.py: For package installation failures, build a DuplicateSignature from the package, version, and dpkg ErrorMessage, instead of using the whole dpkg terminal log. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 02 May 2013 15:21:23 -0700 apport (2.10-0ubuntu1) saucy; urgency=low [ Martin Pitt ] * New upstream release. Changes since our previous snapshot: - Support retracing foreign powerpc reports, thanks Steve Langasek. - apport/report.py: Generate a crash signature for suspend/resume failures. - hookutils.py: Add attach_upstart_logs(), thanks Steve Langasek. - hookutils.py, in_session_of_problem(): Port from ConsoleKit to logind. - apport/report.py: Handle the case where the user has been removed from the system, but one of its still-running binaries crashes (LP: #1163453). - Fix anonymization of user/GECOS fields with regexp control characters like '+'. (LP: #985049) - Run tests under LC_CTYPE=C and unset LANG as well, to discover assumptions about UTF-8 locales. Fix the two failing tests. - Fix UnicodeDecodeError when apport encounters non-ASCII environment variables. (LP: #1172638) * debian/control: Update Vcs-* for saucy branch. * data/general-hooks/cloud_archive.py: Fix PEP-8 error. [ Steve Langasek ] * data/general-hooks/ubuntu.py: Call attach_upstart_logs(), to attach the logs for any upstart user jobs shipped by the binary package. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 30 Apr 2013 14:49:42 -0700 apport (2.9.2-0ubuntu8) raring; urgency=low * data/package-hooks/source_ubiquity.py: use an untranslated string to determine if the grub install was successful (LP: #1168126) -- Brian Murray <brian@ubuntu.com> Thu, 11 Apr 2013 12:51:43 -0700 apport (2.9.2-0ubuntu7) raring; urgency=low * data/general-hooks/cloud_archive.py: Send reports for packages from the Ubuntu Cloud Archive to the cloud-archive project on Launchpad. -- James Page <james.page@ubuntu.com> Thu, 11 Apr 2013 16:07:39 +0100 apport (2.9.2-0ubuntu6) raring; urgency=low * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the raring release. Only report to http://errors.ubuntu.com from now on. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 11 Apr 2013 12:42:27 +0200 apport (2.9.2-0ubuntu5) raring; urgency=low * data/package-hooks/source_ubiquity.py: Fix crash on non-UTF-8 data in log files. * Merge from trunk: - data/gcc_ice_hook: Fix crash with source files that have non-UTF8 data. (LP: #1045283) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 27 Mar 2013 09:01:58 +0100 apport (2.9.2-0ubuntu4) raring; urgency=low * data/general-hooks/ubuntu-gnome.py: Add "gnome3-ppa" tag if any dependency is from the gnome3 PPA. * Merge from trunk: - hookutils.attach_conffiles(): Fix IOError crash on inaccessible conffiles; mark them as '[inaccessible: <reason>]' instead. (LP: #1154536) - hookutils.in_session_of_problem(): Fix crash when the current locale is invalid. (LP: #1154896) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 25 Mar 2013 15:34:02 +0100 apport (2.9.2-0ubuntu3) raring; urgency=low [ Martin Pitt ] * Add data/general-hooks/ubuntu-gnome.py: Send reports for packages from the gnome3 PPAs to the ubuntu-gnome Launchpad project. (LP: #1158119) [ Philip Muškovac ] * Add the seed name as bug tag in the ubiquity hook so it's possible to filter the bugs by the image that was used. (LP: #1154302) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 25 Mar 2013 11:17:49 +0100 apport (2.9.2-0ubuntu2) raring; urgency=low * Include ubiquity.log generated by upstart for the ubiquity.conf upstart job. -- Dmitrijs Ledkovs <dmitrij.ledkov@ubuntu.com> Wed, 13 Mar 2013 18:52:21 +0000 apport (2.9.2-0ubuntu1) raring; urgency=low * New upstream release: - report.py, add_package_info(): Add "[origin: unknown]" tag to Package/Dependencies fields for non-distro package whose origin cannot be determined. (LP: #1148116) - Adjust kernel_crashdump to the format kdump-tools produces. Thanks Louis Bouchard. - Write core dumps on SIGQUIT if ulimit allows. Thanks Graeme Hewson. (LP: #1153662) * debian/apport.upstart: Also check for kdump-tools-style kernel crash reports for calling kernel_crashdump. Thanks Louis Bouchard. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Mar 2013 11:48:27 +0100 apport (2.9.1-0ubuntu1) raring; urgency=low * New upstream release: - launchpad.py: Add support for filing bugs as private. Document this in doc/crashdb-conf.txt. (LP: #1144647) - Fix crash in error() and warning() if there is no sys.stderr. (LP: #1012445) - Fix Turkish translation to add missing keyboard accelerator. (LP: #648750) - fileutils.py, find_package_desktopfile(): Restrict to autostart and application .desktop files. (LP: #1147528) - apt/dpkg get_modified_files(): Fix crash when encountering non-ASCII file names in an ASCII locale. (LP: #1044014) * Bump Standards-Version to 3.9.4 (no changes necessary). -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 07 Mar 2013 16:04:35 +0100 apport (2.9-0ubuntu2) raring; urgency=low * Merge from trunk: - test_signal_crashes.py: Fix test_crash_apport() when being run under LD_PRELOAD. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 01 Mar 2013 13:35:21 +0100 apport (2.9-0ubuntu1) raring; urgency=low [ Martin Pitt ] * New upstream release. Changes since previous trunk merge: - fileutils.py, shared_libraries(): Return a "name → path" dict instead of just a set of names. Thanks Kyle Nitzsche. - sandboxutils.py: Support unpackaged executables, i. e. reports which do not have "Package" and "Dependencies" fields. For those, get required libraries from "ProcMaps". Thanks Kyle Nitzsche. - apport/report.py: report if LD_PRELOAD and LD_LIBRARY_PATH are set. Thanks James Hunt. - apport-valgrind: Cleanly exit on keyboard interrupts. Thanks Kyle Nitzsche. - debian.py: Fix "string payload expected" crash when building the report. Thanks Dmitry Shachnev. (Debian #698010) - Move shared_libraries() and links_with_shared_library() from hookutils into fileutils, so that we can use it from apport-valgrind. Thanks to Kyle Nitzsche for the initial patch. - fileutils.shared_libraries(): Filter out virtual "linux-vdso" from result. Thanks Kyle Nitzsche. - apport-valgrind: Fix path to debug symbols in the sandbox. - ui.py, get_desktop_entry(): Fix for Python 2. [ Brian Murray ] * data/general-hooks/ubuntu.py: remove adding of running-unity tag to bug reports as the majority of users are now using unity so this is the more common case. * data/package-hooks/source_ubiquity.py: set a default value for cd_error -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 01 Mar 2013 09:17:34 +0100 apport (2.8-0ubuntu4) raring; urgency=low * ui.py: Check $PKEXEC_UID in addition to $SUDO_UID for opening a browser. (Backported from trunk). -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 01 Feb 2013 11:26:39 +0100 apport (2.8-0ubuntu3) raring; urgency=low * Backport polkit action for running apport-gtk through pkexec to access system crash reports from upstream r2578 -- Brian Murray <brian@ubuntu.com> Wed, 30 Jan 2013 08:13:01 -0800 apport (2.8-0ubuntu2) raring; urgency=low [ Martin Pitt ] * debian/control: Add alternative libc-dbg dependencies. [ Brian Murray ] * data/package-hooks/source_linux.py: modify check for whether or not the kernel is an upstream one (LP: #1100198) -- Brian Murray <brian@ubuntu.com> Thu, 17 Jan 2013 09:04:19 -0800 apport (2.8-0ubuntu1) raring; urgency=low * New upstream release: - Factor out sandbox management functions from apport-retrace into apport/sandboxutils.py, so that other programs can re-use the API easily. Thanks to Kyle Nitzsche for the initial work on this. - Generate a crash signature for kernel OOPSes. - Add "apport-valgrind" tool to produce valgrind reports in a temporary sandbox with debug symbols (similar to apport-retrace). Thanks Alex Chiang and Kyle Nitzsche! - Fix StacktraceAddressSignature generation on ARM. (LP: #1089778) - debian.py: Fix TypeError crash in payload generation. Thanks Ritesh Raj Sarraf. - apport_python_hook.py: Update "ExecutableTimestamp" field when mangling "ExecutablePath". (LP: #1077253) * Add new apport-valgrind binary package. * Re-enable Launchpad crash reports for raring. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 08 Jan 2013 08:39:35 +0100 apport (2.7-0ubuntu2) raring; urgency=low * Cherry-pick from trunk: - Fix StacktraceAddressSignature generation on ARM. (LP: #1089778) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 13 Dec 2012 08:56:47 +0100 apport (2.7-0ubuntu1) raring; urgency=low * New upstream release: - packaging.py, get_file_package(): Add optional "release" and "arch" arguments for getting a file's package for a foreign release or architecture. Implement this for apt/dpkg backend. - packaging.py, install_packages(): Add optional "architecture" argument for creating a sandbox for a foreign architecture. Implement this for apt/dpkg backend. - When a report's architecture does not match the system architecture, try to use gdb-multiarch (if available, as packaged on Debian/Ubuntu), and set architecture and gnutarget accordingly in gdb. This supports x86, x86_64, and ARM for now, so that reports from all these architectures can be retraced on an x86_84 machine. (LP: #1044437) - launchpad.py: Add "architecture" option to process reports for a foreign architecture. - Add exceptions from package hooks to new HookError_<filename> report field, to make them more visible. Until now they were only written to stderr. (LP: #1086309) - apport-cli: Fix showing of prompt. Thanks Dmitry Shachnev! - fileutils.py, mark_report_upload(): Do not try to remove the .uploaded file, as this is not owned by the user. - backends/packaging-apt-dpkg.py, install_packages(): Set mirror to the one in the sandbox config. - apportcheckresume: Fix crash if state file does not exist. * debian/control: Add "gdb-multiarch" suggests to apport-retrace, and update package description for justification. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 10 Dec 2012 14:07:04 +0100 apport (2.6.3-0ubuntu4) raring; urgency=low * Merge from trunk: Consistently use ignore file without $HOME. Fixes running as root, and autopkgtests. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 05 Dec 2012 23:28:09 +0000 apport (2.6.3-0ubuntu3) raring; urgency=low * Fix OSError crash in mark_report_upload(); regression from 2.6.3-0ubuntu2. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 05 Dec 2012 10:55:55 +0000 apport (2.6.3-0ubuntu2) raring; urgency=low * debian/control: Add libglib2.0-dev and libnih-dev build dependencies, for the tests that run during build time. * debian/tests/control: Add missing test dependencies: libnih-dev for test_add_gdb_info_abort_libnih. * Merge from trunk: - Fix test_find_package_desktopfile test to not consider packages with only one "NoDisplay=true" .desktop file for the "has one desktop file" test. - report.py, mark_ignore(): Use home directory of actual effective user, not of $HOME. Fixes ignore file when using through sudo. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 30 Nov 2012 21:51:33 +0100 apport (2.6.3-0ubuntu1) raring; urgency=low * New upstream release. Changes since our previous snapshot: - debian.py: Only reject reports with useless stack traces if the report actually has a stack trace at all. - debian.py: Fix UTF-8 string handling. Thanks Ritesh Raj Sarraf. - debian.py: Fix crash on broken "Package" fields, as generated by current Debian/Ubuntu dkms package. - data/apport: Call fsync when writing upstart crash reports. - report.py, add_gdb_info(): Handle libnih's assertion messages. (LP: #997359) - apport-gtk, apport-kde: Don't provide an option to restart a crashed application when the crash occurred in a thread (LP: #1033902). - apport-retrace: Disallow option -C without option -S. Thanks Kyle Nitzsche. - fileutils.py, mark_report_upload(): Refresh the .upload stamps if a previous version of the report was already uploaded, but another instance of the problem happened since then. Thanks Brian Murray. (LP: #1084296) - Ignore implausibly low addresses when computing StacktraceAddressSignature. These are usually artifacts from gdb when not having debug symbols, and having too many of them prevents proper client-side duplicate detection and proper bucketing in daisy. (LP: #1084996) - fileutils.py: Ignore .desktop files with NoDisplay=true. (LP: #1048524) * debian/tests/control: Run tests as root, just like before switching our autopkgtests to run as user "ubuntu" by default. This enables a couple of extra tests, and avoids some confusion because the distro and the user name are identical. * data/package-hooks/source_linux-nexus7.py: Fix PEP-8 error. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 30 Nov 2012 18:00:01 +0100 apport (2.6.2-0ubuntu5) raring; urgency=low * data/general-hooks/ubuntu.py: Deal with dpkg_log file being a string instead of bytes (LP: #1080915) -- Brian Murray <brian@ubuntu.com> Mon, 19 Nov 2012 17:03:54 -0800 apport (2.6.2-0ubuntu4) raring; urgency=low * data/package-hooks/source_linux.py: Do not abort with "not an Ubuntu kernel" if the report has a CrashDB set, i. e. reports go to a different project. * Add data/package-hooks/source_linux-nexus7.py: Package hook for our nexus7 package which currently lives in a PPA: (LP: #1076082) - Report bugs against the "ubuntu-nexus7" project. - Collect information from the "linux" source package hook. - Add "mobile" and "nexus7" tags. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Nov 2012 09:24:12 +0100 apport (2.6.2-0ubuntu3) raring; urgency=low * debian/tests/control: Add missing libglib2.0-0-dbg test dependency for the report.test_add_gdb_info_abort_glib() check. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 09 Nov 2012 10:49:30 +0100 apport (2.6.2-0ubuntu2) raring; urgency=low * debian/tests/control: Add libglib2.0-dev dependency for the new "glib assertion message" test case. * Merge from trunk: - test_signal_crashes.py: Fix incompatibility with Python 3.3. - test_signal_crashes.py: Allow XDG_RUNTIME_DIR environment variable, as it only shows whether or not it is set. (Test regression from 2.6) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 07 Nov 2012 10:24:28 +0100 apport (2.6.2-0ubuntu1) raring; urgency=low * New upstream release: - problem_report.py: Fix UnicodeDecodeError crash under Python 2 when the report has an unicode field with an unprintable ASCII character < 20. - debian.py: Fix calling of parent accepts() method and return value. Thanks Ritesh Raj Sarraf. - bin/apport-retrace: Fix crash when not using --sandbox mode. - report.py, add_proc_info(): Throw correct exception if the executable path does not exist, to provide a more appropriate error message. (LP: #1065129) - report.py, add_gdb_info(): Check __glib_assert_msg for assertion messages, too. - REThread.py: Fix for Python 3.3. * debian/control: Update Vcs-Bzr: for raring branch. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 06 Nov 2012 16:18:56 +0100 apport (2.6.1-0ubuntu6) quantal-proposed; urgency=low * Do not refer to the current release in the InstallationDate field (LP: #1070400). We have the installed release version in the InstallationMedia field. -- Evan Dandrea <ev@ubuntu.com> Wed, 24 Oct 2012 14:31:10 +0100 apport (2.6.1-0ubuntu5) quantal-proposed; urgency=low * Include the date that Ubuntu was installed with each report (LP: #1070400). -- Evan Dandrea <ev@ubuntu.com> Wed, 24 Oct 2012 11:29:18 +0100 apport (2.6.1-0ubuntu4) quantal-proposed; urgency=low * apport/ui.py: create a MarkForUpload field and set that to false for binaries that changed since the crash happened thereby preventing uploads to the crash database (LP: #1039220) -- Brian Murray <brian@ubuntu.com> Tue, 16 Oct 2012 13:31:24 -0700 apport (2.6.1-0ubuntu3) quantal; urgency=low * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the final release. Only report to http://errors.ubuntu.com from now on. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 09 Oct 2012 17:19:32 +0200 apport (2.6.1-0ubuntu2) quantal; urgency=low * apport-kde; do not run mainloop as well as dialogues, prevents crash on reporting a bug -- Jonathan Riddell <jriddell@ubuntu.com> Tue, 09 Oct 2012 13:14:38 +0100 apport (2.6.1-0ubuntu1) quantal; urgency=low * New upstream release: - setup.py: Build java module with "-target 1.5" option, so that you can run it with OpenJDK 6 even if you build with OpenJDK 7. - report.py, add_proc_info(): Show if $XDG_RUNTIME_DIR is set. - Add apport/crashdb_impl/debian.py: Initial crash database implementation for the Debian BTS. Add configuration for it to etc/apport/crashdb.conf. Thanks Ritesh Raj Sarraf! Note that in the Ubuntu packaging branch crashdb.conf is not changed, as we do not need the Debian BTS and this would otherwise be Feature Freeze matter. - test_python_crashes.py: Robustify "$PYTHONPATH in ProcEnviron" check. - Updated translations from Launchpad. * data/package-hooks/source_linux.py: Stop collecting ACPI data, not needed/desired for most bug reports according to Colin King. * debian/tests/control: Add at-spi2-core dependency, otherwise the GTK test will fail to connect to org.a11y.Bus. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 01 Oct 2012 12:27:00 +0200 apport (2.5.3-0ubuntu1) quantal; urgency=low * New upstream release. Changes since our previous snapshot: - report.py, search_bug_patterns(): Fix bug patterns containing non-ASCII characters. - apport_python_hook.py: Capture $PYTHONPATH and $PYTHONHOME environment variables for Python crashes. - Translation updates. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 28 Sep 2012 12:59:11 +0200 apport (2.5.2-0ubuntu4) quantal; urgency=low * Merge from trunk: - hookutils.py, attach_root_command_outputs(): Ignore IOError crash about nonexisting files, which can happen if the user dismisses authorization. (LP: #1051222) - launchpad.py: Fix tag filtering for Python 3. (LP: #1052754) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 20 Sep 2012 08:07:01 +0200 apport (2.5.2-0ubuntu3) quantal; urgency=low * data/general-hooks/ubuntu.py: Fix PEP-8 errors. * Merge from trunk: - apport/ui.py: Update expected exception after r2486. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 19 Sep 2012 10:41:09 +0200 apport (2.5.2-0ubuntu2) quantal; urgency=low * data/general-hooks/ubuntu.py: Add "package-from-proposed" tag if the installed package version is available from -proposed, but not from -security and -updates. (LP: #1050853) * Merge fixes from trunk: - data/apportcheckresume: Open report file in binary mode. (LP: #1040353) - packaging-apt-dpkg.py: When throwing ValueErrors, show the non-existing package name. This makes it easier to debug such crashes. - launchpad.py: Replace characters from tags which are not allowed by Launchpad with '.' (LP: #1029479) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 18 Sep 2012 14:51:08 +0200 apport (2.5.2-0ubuntu1) quantal; urgency=low * New upstream release: - Fix crash on broken .desktop files. (LP: #1039889) - apport-gtk: For console program crashes, say "stopped" instead of "closed". Add a subtitle label with a hint about hanging programs. Thanks Matt Price and Matthew Paul Thomas! - report.py: Fix crash on determination of Python module path when examining a crash of "python -m ...". - apport-kde: Fix crash with undefined QString under Python 3. Thanks Jonathan Riddell! (LP: #1028984) - launchpad.py: Add missing "Pre-release Freeze" status. Thanks Brian Murray! - report.py, _check_bug_pattern(): Fix bug pattern matching against binary values. Thanks Brian Murray for the original patch. (LP: #1016380) * debian/control: Move x-terminal-emulator dependency from apport-retrace to -gtk and -kde. It's those which actually spawn an X terminal for apport-retrace to run in, and this lessens the dependencies for apport-retrace on server type systems. * Add debian/apport.maintscript: Clean up obsolete precise conffile /etc/apport/native-origins.d/lts-q-backports on upgrades. (LP: #1049058) * data/general-hooks/ubuntu.py: Fix PEP-8 errors. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 17 Sep 2012 14:15:41 +0200 apport (2.5.1-0ubuntu7) quantal-proposed; urgency=low * bin/apport-bug: Explicitly set the PATH to that of ENV_SUPATH in /etc/login.defs. We need do this so that confined applications using ubuntu-browsers.d/ubuntu-integration cannot abuse the environment to escape AppArmor confinement via this script (LP: #1045986). This can be removed once AppArmor supports environment filtering (LP: 1045985) -- Jamie Strandboge <jamie@ubuntu.com> Tue, 04 Sep 2012 21:23:16 -0500 apport (2.5.1-0ubuntu6) quantal; urgency=low * data/general/ubuntu.py: handle the case where a log file is compressed when reviewing package installation failures (LP: #917903) -- Brian Murray <brian@ubuntu.com> Tue, 04 Sep 2012 15:35:50 -0700 apport (2.5.1-0ubuntu5) quantal; urgency=low * Use Python string rather than QString, LP: #1028984 -- Jonathan Riddell <jriddell@ubuntu.com> Tue, 04 Sep 2012 16:13:14 +0100 apport (2.5.1-0ubuntu4) quantal; urgency=low * do not stack trace when ec2 metadata is available (LP: #1018552) -- Scott Moser <smoser@ubuntu.com> Thu, 30 Aug 2012 17:15:02 -0400 apport (2.5.1-0ubuntu3) quantal; urgency=low * data/general/ubuntu.py: when creating a duplicate signature search the terminal log for more messages indicating the start of a failure thereby creating a duplicate signature in more cases -- Brian Murray <brian@ubuntu.com> Tue, 28 Aug 2012 09:56:30 -0700 apport (2.5.1-0ubuntu2) quantal; urgency=low * Merge from trunk: - test/run: Ignore root_info_wrapper with pyflakes. - packaging-apt-dpkg.py: Add recommended packages to "Dependencies:" field. (LP: #1014428) - test_hookutils.py, test_in_session_of_problem(): Use year 2038 for a future date instead of 2211, as current Python 3.2 now crashes with an OverflowError on 32 bit machines with later years. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 24 Aug 2012 07:50:15 +0200 apport (2.5.1-0ubuntu1) quantal; urgency=low * New upstream release: - test_recoverable_problem.py: Fix test for calling test runner with absolute path. - packaging-apt-dpkg.py: Fix crash on writing virtual_mapping.db when running with --sandbox-dir and -S system or giving no --cache. - REThread.py: Fix re-raising of exceptions in Python 3. Thanks Martin Packman! (LP: #1024836) - apport-retrace: Keep compressed CoreDump from .crash files instead of uncompressing them into memory. This dramatically reduces memory usage. (LP: #981155) - Add an apport.memdbg() function which prints out current memory usage if APPORT_MEMDEBUG is set. Annotate apport-retrace with it. - hookutils.py: Allow specifying a list of profile names when using attach_mac_events(). Thanks Marc Deslauriers. - hookutils.py, attach_root_command_outputs() and root_command_output(): Drop usage of sudo, kdesudo, and gksu, and replace with pkexec. For attach_root_command_outputs(), use a wrapper and proper .policy file which explains the action and works under every environment; thus attach_root_command_outputs() is preferred over root_command_output() now, as it provides a better user experience. - Package hooks which want to send the report to a different crash database than "default" can now also give the database specification itself in the "CrashDB" field, not just the DB name. With this, packages do not need to ship a separate /etc/apport/crashdb.conf.d/ file. Please see doc/package-hooks.txt for details. (LP: #551330) - report.py, add_hooks_info(): If reporting against a package/program in /opt, also search for package hooks in the corresponding /opt directory. This allows such hooks to define a custom crash database and thus report bugs against their own project instead of against the distribution. (LP: #1020503) * debian/rules: Call dh_install with --list-missing, and ignore .pyc and .egg-info files. * debian/apport.install: Install new polkit .policy and root_info_wrapper files, and add policykit-1 Recommends. * debian/apport.install: Ship is-enabled script. * debian/apport-kde.install: Ship userpass.ui file. * Drop debian/apport-retrace.manpages and debian/apport.manpages and install the man pages from *.install instead. This works better with --list-missing. * debian/apport.install: Install 000record-status pm-utils script, to unbreak suspend failure detection. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 22 Aug 2012 11:58:45 +0200 apport (2.4-0ubuntu9) quantal; urgency=low * apport/ui.py: revert the change to when the .upload file is created as the fix was incomplete and requires more investigation -- Brian Murray <brian@ubuntu.com> Tue, 21 Aug 2012 10:23:35 -0700 apport (2.4-0ubuntu8) quantal; urgency=low * hookutils.py: Allow specifying a list of profile names when using attach_mac_events() -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 15 Aug 2012 22:47:33 -0400 apport (2.4-0ubuntu7) quantal; urgency=low * apport/ui.py: only create the .upload file after collect_info is complete that way whoopsie will upload crash files with all the information it needs (LP: #1020994) -- Brian Murray <brian@ubuntu.com> Wed, 15 Aug 2012 16:07:34 -0700 apport (2.4-0ubuntu6) quantal; urgency=low * debian/control: - Drop python3-pykde4 from Build-Depends. The dep8 tests will pull it in as needed. The non-fatal build tests will continue to fail the KDE test anyway because it requires X. This way, we don't require python3-pykde4 to be in main. -- Michael Terry <mterry@ubuntu.com> Wed, 25 Jul 2012 13:20:42 -0400 apport (2.4-0ubuntu5) quantal; urgency=low * Merge from trunk: - test_recoverable_problem.py: Fix test for calling test runner with absolute path. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 23 Jul 2012 07:06:40 +0200 apport (2.4-0ubuntu4) quantal; urgency=low * data/general/ubuntu.py: check to see if a package installation duplicate signature has been encountered previously and if so prevent bug reporting (LP: #1007637) * data/general/ubuntu.py: properly decode DpkgTerminalLog lines -- Brian Murray <brian@ubuntu.com> Fri, 20 Jul 2012 11:39:06 -0700 apport (2.4-0ubuntu3) quantal; urgency=low * data/general/ubuntu.py: modify regualr expressions for determining which package installation failures to gather /etc/default/grub for (LP: #1006633) -- Brian Murray <brian@ubuntu.com> Wed, 18 Jul 2012 15:48:49 -0700 apport (2.4-0ubuntu2) quantal; urgency=low * debian/apport.install: Ship the new recoverable_problem script. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 18 Jul 2012 16:33:56 +0200 apport (2.4-0ubuntu1) quantal; urgency=low [ Brian Murray ] * data/general/ubuntu.py: in trim_log deal with the fact that DpkgTerminalLog is a bytes object and convert it to a string object [ Martin Pitt ] * New upstream release. Changes since our previous snapshot: - Add new "RecoverableProblem" report type for problems which the application can handle, but still wishes to notify the user and send a problem report about. As an example, the application may wish to notify the user because handling the error resulted in degraded functionality. The user interface may fail to load items, or the action just performed may not return any data. Applications call /usr/share/apport/recoverable_problem with a string of arbitrary NUL-separated key/value pairs that are added to the report. Thanks Evan Dandrea! - launchpad.py: Fix setting of 'Medium' importance on duplicate checking. - apport-retrace: Fix StacktraceSource generation for relative --cache paths. - crashdb.py, check_duplicate(): Do not try to mark a bug as duplicate of itself. This can happen when re-processing a previously retraced bug. - apport-retrace: Fix UnicodeDecodeError when encountering a non-ASCII source code file and running under a non-UTF-8 locale. * debian/control: Add libc6-dbg build dependency, to ensure that the report.test_add_gdb_info_abort test case can succeed (otherwise gdb cannot decipher the __abort_msg structure). -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 18 Jul 2012 12:31:50 +0200 apport (2.3-0ubuntu4) quantal; urgency=low * debian/control: Add gir1.2-wnck-3.0 dependency for apport-gtk, needed by the new --hanging feature. * Merge from trunk: - test_python_crashes.py: Fix race condition in timeout test. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Jul 2012 18:35:15 +0200 apport (2.3-0ubuntu3) quantal; urgency=low * Merge from trunk: - apport_python_hook.py: For org.freedesktop.DBus.Error.ServiceUnknown exceptions, add a 'DbusErrorAnalysis' field to the report which points out whether any .service file provides the service it tried to talk to, and whether the processes for those are running. This helps to determine the root cause for such errors (missing dependencies, broken .service files, talking to the wrong bus, etc.) (LP: #1020572) - hookutils.py, attach_alsa(): Use alsa-info.sh when available. Thanks David Henningson. - ui tests, test_wait_for_pid(): Fix eternal hang when running as root. - testsuite: Fix ResourceWarnings when running with Python 3. * debian/control, debian/tests/control: Add gvfs-daemons as build/test dependency, as test_python_crashes uses it as an example for handling python-dbus exceptions. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Jul 2012 14:58:45 +0200 apport (2.3-0ubuntu2) quantal; urgency=low * Fix PEP-8 violations in Ubuntu specific hooks, picked up by latest pep8 checker. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 09 Jul 2012 11:30:29 +0200 apport (2.3-0ubuntu1) quantal; urgency=low * New upstream release: - launchpad.py: Rework test suite to not use Launchpad's +storeblob facility at all any more. It almost never works on staging and is horribly slow. Fake the bug creation from a blob by manually creating the comment and attachments ourselves, and just assume that storeblob works on production. Also change the structure to allow running every test individually. - crash-digger: Add --crash-db option to specify a non-default crash database name. (LP: #1003506) - apport-gtk: Add --hanging option to specify the process ID of a hanging application. If the user chooses to report this error, apport will terminate the pid with SIGABRT, otherwise it will send SIGKILL. The normal core pipe handler will be used to process the resulting report file, with a .hanging file in /var/crash to separate these from regular crashes. - apport: Also treat a binary as modified if the /proc/pid/exe symlink does not point to an existing file any more. (LP: #984944) - Fix PEP-8 violations picked up by latest pep8 checker. - ui.py: Do not ignore certain exceptions during upload which are not likely to be a network error. - launchpad.py: Recongize Launchpad projects for bug query and marking operations. (LP: #1003506) - packaging-apt-dpkg.py: Fix get_source_tree() to work with apt sandboxes. - apport-retrace: Turn StacktraceSource generation back on, now that it works with the current sandboxing. - launchpad.py: Ensure that upload chunk size does not underrun. (LP: #1013334) - apport_python_hook: Fix UnicodeEncodeError crash with Python 2 for exceptions with non-ASCII characters. (LP: #972436) - test_ui_kde.py: Fix occasional test failure in test_1_crash_details if the application ends before the "is progress bar visible" check is done. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 09 Jul 2012 08:14:30 +0200 apport (2.2.5-0ubuntu2) quantal; urgency=low * data/general/ubuntu.py: fix an issue with a regular expression for finding a package install failure due to a corrupt package -- Brian Murray <brian@ubuntu.com> Mon, 02 Jul 2012 13:24:00 -0700 apport (2.2.5-0ubuntu1) quantal; urgency=low * New upstream bug fix release: - launchpad.py: Fix str vs. bytes crash for already known bugs, take 2. (LP: #1015788) - apport/ui.py, get_desktop_entry(): Disable interpolation, to correctly read desktop files with % signs. (LP: #1014341) - apport/ui.py: Fix rare crash if a report is already being updated in the background when the UI tries to update a previous version. (LP: #949196) - GTK and KDE UI tests: Avoid eternal hangs due to "this is not a distro package" error messages. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 21 Jun 2012 16:15:20 +0200 apport (2.2.4-0ubuntu1) quantal; urgency=low * debian/tests/control: Simplify Depends: line by using "@" and dropping packages which are already dependencies of apport's packages. * debian/tests/control: Drop undefined "no-build-needed" feature. * New upstream bug fix release. Changes since our previous trunk snapshot: - apport-cli: Unbreak "keep" option. (LP: #1007826) - launchpad.py: Fix str vs. bytes crash for already known bugs. (LP: #1015788) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 21 Jun 2012 09:13:56 +0200 apport (2.2.3-0ubuntu6) quantal; urgency=low * Merge from trunk: - test/run: Wait for a previous xvfb server to finish before trying to start one. This fixes a race condition in the KDE UI tests which often failed to start up xvfb. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 20 Jun 2012 07:59:33 +0200 apport (2.2.3-0ubuntu5) quantal; urgency=low [ Brian Murray ] * data/general-hooks/ubuntu.py: do not report 'dpkg-deb --control returned error exit status 2' package install failures [ Martin Pitt ] * debian/tests/upstream-system: Show number of failed tests on stdout, not stderr. * debian/tests/control: Add python3-mock and xvfb dependencies. * Merge from trunk: - test_crash_digger.py: Do not write crash reports of crash-digger into system /var/crash, use a temporary directory. * debian/control: Add XS-Testsuite header, as per current DEP-8. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Jun 2012 08:51:18 +0200 apport (2.2.3-0ubuntu4) quantal; urgency=low * debian/tests/upstream-system: Clean up old crash reports. * debian/tests/upstream-system: Show number of failed tests. * Merge from trunk: - test_signal_crashes.py: Show crash reports in /var/crash/. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 18 Jun 2012 09:30:10 +0200 apport (2.2.3-0ubuntu3) quantal; urgency=low * Merge from trunk: - test_apport_unpack.py: Fix test_unpack_python() test when running the system-installed tests. - data/java_uncaught_exception: Fix for Python 3. * debian/tests/control: Add apport-retrace dependency, as the tests cover it. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 15 Jun 2012 12:57:19 +0200 apport (2.2.3-0ubuntu2) quantal; urgency=low * debian/rules: Disable the xvfb tests during package build for now, as they currently cause the buildds to hang indefinitely. They are still run in the jenkins autopkgtests. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 15 Jun 2012 10:17:17 +0200 apport (2.2.3-0ubuntu1) quantal; urgency=low [ Martin Pitt ] * New upstream bug fix release: - test/run: Do not run pep8 and pyflakes when running against the sytem installed Apport. - test_backend_apt_dpkg.py: For the "are we online" check, verify that we can download from http://ddebs.ubuntu.com/, not just whether we have a default route. The latter is not sufficient for e. g. buildd environments which are online, but are restricted by proxies or firewalls. - test_report.py: Call "sync" after test script write core dumps, to ensure that subsequent operations have a complete one. - test_signal_crashes.py: Drop the broken and obsolete test_local_python() test. Instead, add two tests which check proper logging. - launchpad.py: Fix urlopen() for Python3. Thanks Steve Langasek. - test/run: Run the tests under LC_MESSAGES=C, to avoid failing tests on translated strings. * debian/control: Add libc6-dbg | libc6-dbgsym dependency to apport-retrace, to ensure gdb can decipher the abort_msg_s struct and thus read assertion messages. Also add libc6-dbg to debian/tests/control so that report.test_add_gdb_info_abort can succeed in autopkgtest. * debian/control, debian/tests/control: apport-retrace needs a terminal emulator, so add an x-terminal-emulator dependency. Add xterm as build and autopkgtest dependency, so that the tests have one available. * debian/control: Drop python-launchpadlib from Depends to Suggests for python-apport, too. [ Steve Langasek ] * debian/rules: call dh_python3 with --skip-private, to avoid incorrect generation of a .rtupdate script for /usr/share/apport. LP: #1013171. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 15 Jun 2012 08:27:17 +0200 apport (2.2.2-0ubuntu2) quantal; urgency=low * debian/control: Add python3-pykde4 build dependency for the test suite. * debian/rules: Unset $TMPDIR during the tests, to work around LP #972324. * Merge from trunk: - test/test_signal_crashes.py: More verbose tests. * debian/tests/upstream-system: Do not run in the source tree, as we want to check the system-installed Apport. * debian/tests/control: Explicitly depend on apport-kde and apport-gtk. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 13 Jun 2012 17:55:35 +0200 apport (2.2.2-0ubuntu1) quantal; urgency=low * debian/control: Add alternative gdb-minimal dependencies to apport-{gtk,kde}. (LP: #1012405) * debian/control: apport-kde: depend on python3-pykde4. * debian/tests/control: Add missing python3 dependencies for the GUI tests. * New upstream release: - testsuite: Run with Python 3 by default. To test with Python 2, run "PYTHON=python2 test/run". - apport: Redefine sys.std{out,err} when redirecting output, as they are None in Python 3 when being called from the kernel. - test/test_signal_crashes.py: Clean up unexpected core dumps on failed test cases. - apport-gtk: Fix crash when closing the crash dialog while the information is being collected. - hookutils.py, xsession_errors(): Fix crash when running under a non-UTF8 locale. - data/apport: Do not use sys.stdin.fileno(), it is invalid when being called from the kernel with Python 3. - data/apport: When core dumps are enabled, read them from the written report instead of directly from stdin (and then reading the written core file into the .crash report). If the core file size is limited, we otherwise stop reading the core dump from the kernel in the middle and have no (or a broken) core dump to be put into the report. - data/apport: Properly close the written crash report before changing its permissions to be readable. This prevents having crash reporting UI from looking at incomplete .crash files. * debian/rules: drop explicit setting of $PYTHON, test suite is now run with python3 by default. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 13 Jun 2012 13:08:51 +0200 apport (2.2.1-0ubuntu2) quantal; urgency=low * debian/control: Add back the Python 2 build dependencies, as we are also doing a Python 2 build. * debian/control: Add pyflakes build dependency, so that it can run during the build. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 12 Jun 2012 06:38:26 +0200 apport (2.2.1-0ubuntu1) quantal; urgency=low * New upstream release: - Clean up module imports. - test/run: Run pyflakes, if available. - package_hook: Add --tags option. Thanks to Brian Murray. - launchpad.py: Drop the external multipartpost_handler.py (which is not portable to Python 3) and replace it with using the standard email module. - launchpad.py: Also work with Python 3. Deal gracefully with a missing "launchpadlib" module; this is not yet available for Python 3, but not required for client-side reporting. - apport-kde: Port to work with Python 3. - apport-retrace: Fix crash when using the --procmaps option. - setup.py: Update hashbang lines of installed scripts in data directory to the python executable setup.py was run with, similar to what already happens to scripts installed to ../bin/. - apport-cli: Port to work with Python 3. - setup.py: When fixing hashbang lines of installed scripts, only include the major Python version. - hookutils.py, read_file, attach_file(), attach_file_if_exists(): Convert file contents to unicode if the contents is UTF-8, or the newly added force_unicode argument is True. - hooktuils, command_output(): Convert output to unicode by default, and add a "decode_utf8" parameter to disable this. - hookutils.py, recent_logfile(): Fix fd leak. - data/apport: Do not assume that sys.stdout and sys.stderr always have a name; they can be None in Python 3. - data/dump_acpi_tables.py: Fix for Python 3. * data/package-hooks/source_debian-installer.py: Port to work with Python 3. * Move to Python 3, except for the parts that need python-launchpadlib (which is not yet available for Python 3): - debian/control: Add python3-problem-report and python3-apport packages. - debian/control: Switch build and binary dependencies to Python 3 equivalents, except for apport-retrace. - debian/rules: Override dh_auto_* to also handle python3-* packages (see Debian #597105). - debian/rules: Run test suite with Python 3. - debian/rules: Switch hashbang line of apport-retrace back to Python 2. - Move /etc/apport/crashdb.conf from python-apport to apport, and recommend apport from both python{,3}-apport. * bin/apport-bug: Force running with python 2 when being invoked as apport-collect, and add a check/error message that you need to install python-apport to use this. * test/test_hookutils.py: Drop duplicate definition of _get_mem_usage(), now identical again to trunk. * ./test/test_ui_gtk.py: Drop duplicate definition of test_immediate_close(), now identical again to trunk. * data/general-hooks/ubuntu.py: Do not decode result of command_output(), this is done by default now. * data/package-hooks/source_linux.py: Add a __main__ for debugging. Stop importing hookutils into the global namespace. * data/package-hooks/source_ubiquity.py: Fix undefined command_output(). * data/general-hooks/ubuntu.py: Move definition of wrong_grub_msg and grub_hook_failure to the correct place, so that this actually works. * data/general-hooks/ubuntu.py: Drop definition of unused "cloud" variable. * data/general-hooks/ubuntu.py: Do not import hookutils symbols into global namespace. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 11 Jun 2012 12:23:53 +0200 apport (2.1.1-0ubuntu2) quantal; urgency=low [ Martin Pitt ] * data/general-hooks/automatix.py: Fix whitespace according to PEP-8. * data/general-hooks/ubuntu.py: Fix whitespace according to PEP-8. * data/package-hooks/source_{linux,ubiquity}.py: Fix whitespace according to PEP-8. * debian/control: Add pep8 build dependency, to ensure folks test-build with that. * etc/apport/crashdb.conf: Re-enable Launchpad crash reporting again. [ Brian Murray ] * data/general-hooks/ubuntu.py: collect /etc/default/grub on systems where a package failed to install during update-grub (LP: #1006633) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 01 Jun 2012 15:44:54 +0200 apport (2.1.1-0ubuntu1) quantal; urgency=low [ Martin Pitt ] * debian/control: Update Vcs-Bzr: for quantal branch. * data/general-hooks/ubuntu.py: Do not assume that all reports have a ProblemType field. This will not be the case for updating a bug with "apport-collect". (LP: #1004029) * New upstream release: - launchpad.py: When closing a bug as a duplicate, copy some well-known tags to the master bug. Thanks Brian Murray. - launchpad.py: Set importance of Python crash reports to "Medium" by default, similar to signal crashes. Thanks Brian Murray. - hookutils.py: Add attach_default_grub() convenience function from the grub2 package hook so it can be used by other packages. Thanks Brian Murray. - launchpad.py: Make Launchpad bug subscription user/team configurable: The initial subscriber after filing a bug can be set with the "initial_subscriber" crashdb option, and the team which gets subscribed after retracing with "triaging_team". (LP: #980726) - report.py: Do not change the SourcePackage: field if the binary package is not installed and does not exist. This fixes source package hooks to actually work in some cases where source and binary package names overlap. (part of LP: #993810) - apport-gtk, apport-kde: Avoid collecting information twice in "bug update" mode. This caused a crash in cases where the source package in a bug report does not correspond to an installed binary package. (LP: #993810) [ Brian Murray ] * data/general-hooks/ubuntu.py: block reporting of package install failures with error regarding 'not a debian format archive' -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 30 May 2012 09:06:49 +0200 apport (2.1-0ubuntu1) quantal; urgency=low * New upstream release: - packaging.py, install_packages(): Add permanent_rootdir flag and if set, only unpack newly downloaded packages. Implement it for the apt/dpkg backend. Thanks Evan Dandrea. - apport-retrace: Add --sandbox-dir option for keeping a permanent sandbox (unpacked packages). This provides a considerable speedup. Thanks Evan Dandrea. - crash-digger: Add --sandbox-dir option and pass it to apport-retrace. - Fix the whole code to be PEP-8 compatible, and enforce this in test/run by running the "pep8" tool. - GTK UI tests: Ensure that there are no GLib/GTK warnings or criticals. - Support Python 3. Everything except the launchpad crashdb backend now works with both Python 2 and 3. An important change is that the load(), write(), and write_mime() methods of a ProblemReport and apport.Report object now require the file stream to be opened in binary mode. - data/apport: Ignore a crash if the executable was modified after the process started. This often happens if the package is upgraded and a long-running process is not stopped before. (LP: #984944) - Add test cases for apport-unpack. - apport-retrace: Add information about outdated packages to the "RetraceOutdatedPackages" field. - ui.py: Drop python-xdg dependency, use ConfigParser to read the .desktop files. - apport-gtk: Work around GTK crash when trying to set pixmap on an already destroyed parent window. (LP: #938090) - data/dump_acpi_tables.py: Fix crash on undefined variable with non-standard tables. (LP: #982267) - backends/packaging-apt-dpkg.py: Fix crash if a package is installed, but has no candidates in apt. (LP: #980094) - data/general-hooks/generic.py: Bump minimum free space requirement from 10 to 50 MB. 10 is not nearly enough particularly for /tmp. (LP: #979928) - hookutils.py, recent_logfile(): Use a default limit of 10000 lines and call "tail" instead of reading the whole file. This protects against using up all memory when there are massive repeated log messages. (LP: #984256) - apport-gtk: Do not assume that an icon requested for size 42 actually delivers size 42; some themes do not have this available and deliver a smaller one instead, causing overflows. Also, copy the image as gtk_icon_theme_load_icon() returns a readonly result which we must not modify. (LP: #937249) - ui.py: Don't show the duplicate warning when the crash database does not accept the problem type, and they are just being sent to whoopsie. Thanks Evan Dandrea. (LP: #989779) - report.py: Correctly escape the file path passed to gdb. - apport-gtk, apport-kde: Do not show the information collection progress dialog if the crash database does not accept this kind of report. In that case whoopsie will upload it in the background and the dialog is not necessary. (LP: #989698) * data/general-hooks/ubuntu.py, data/general-hooks/automatix.py: Support Python 3. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 18 May 2012 16:33:53 +0200 apport (2.0.1-0ubuntu7) precise-proposed; urgency=low * Fix (LP: #989779). Don't show the duplicate warning when we're just reporting to daisy.ubuntu.com. -- Evan Dandrea <ev@ubuntu.com> Fri, 27 Apr 2012 16:53:11 +0100 apport (2.0.1-0ubuntu6) precise-proposed; urgency=low * Cherry-pick from trunk: - hookutils.py, recent_logfile(): Use a default limit of 10000 lines and call "tail" instead of reading the whole file. This protects against using up all memory when there are massive repeated log messages. (LP: #984256) - apport-gtk: Do not assume that an icon requested for size 42 actually delivers size 42; some themes do not have this available and deliver a smaller one instead, causing overflows. Also, copy the image as gtk_icon_theme_load_icon() returns a readonly result which we must not modify. Fixes crashes when using themes other than the standard Ubuntu ones. (LP: #937249) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 20 Apr 2012 18:53:24 +0200 apport (2.0.1-0ubuntu5) precise-proposed; urgency=low * etc/apport/crashdb.conf: Disable Launchpad crash/kernel reports for the final release. Leave Apport running for whoopsie, though, so use the new mechanism for selective problem types. * Cherry-pick from trunk: - data/general-hooks/generic.py: Bump minimum free space requirement from 10 to 50 MB. 10 is not nearly enough particularly for /tmp. (LP: #979928) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 18 Apr 2012 10:08:28 +0200 apport (2.0.1-0ubuntu4) precise; urgency=low * Cherry-pick from trunk: - data/dump_acpi_tables.py: Fix crash on undefined variable with non-standard tables. (LP: #982267) - backends/packaging-apt-dpkg.py: Fix crash if a package is installed, but has no candidates in apt. (LP: #980094) - Launchpad automatic translations update. * debian/control: Drop duplicated python-gi build dependency, thanks lintian. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 16 Apr 2012 16:29:04 +0200 apport (2.0.1-0ubuntu3) precise; urgency=low * Cherry-pick from trunk: - GTK UI tests: Ensure that there are no GLib/GTK warnings or criticals. - apport-gtk: Work around GTK crash when trying to set pixmap on an already destroyed parent window. (LP: #938090) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 13 Apr 2012 19:42:02 +0200 apport (2.0.1-0ubuntu2) precise; urgency=low * debian/general-hooks/ubuntu.py: if the package installation failure is from live media check to see that /cdrom, the real root filesystem, has enough free space -- Brian Murray <brian@ubuntu.com> Wed, 11 Apr 2012 15:41:01 -0700 apport (2.0.1-0ubuntu1) precise; urgency=low * New upstream bug fix release. Changes since our previous snapshot: - problem_report.py, write_mime(): Fix regression from version 1.95: Add a value as attachment if it is bigger than 1000 bytes, not if it is bigger than 100. (LP: #977882) - packaging-apt-dpkg.py: Avoid constructing and updating the apt.Cache() objects multiple times, to speed up retracing. Thanks Evan Dandrea. (LP: #973494) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Apr 2012 15:38:11 +0200 apport (2.0-0ubuntu5) precise; urgency=low * Merge from trunk: - generic package hook: Also check /tmp for enough space. Thanks Brian Murray. (LP: #972933) - Automatic Launchpad translation updates. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Apr 2012 07:34:08 +0200 apport (2.0-0ubuntu4) precise; urgency=low * debian/tests/upstream-system: Drop dead code. * debian/tests/upstream-system: Work around LP #972324 by unsetting TMPDIR for the tests. * Merge test fixes from trunk: - test_backend_apt_dpkg.py: Fix checks for the installation of -dbgsym packages. This should always happen, as the sandboxes have a ddeb apt source. Only make it conditional on the system apt sources in the "use system config" test. - test_report.py: Sleep a bit after calling our test crash script, to ensure the kernel has time to finish writing the core file. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 03 Apr 2012 14:17:38 +0200 apport (2.0-0ubuntu3) precise; urgency=low [ Martin Pitt ] * data/general-hooks/ubuntu.py: Do not capture stderr of lsb_release. (LP: #955111) [ Scott Moser ] * data/general-hooks/ubuntu.py: timeout on attempts to contact ec2 metadata service (LP: #855651) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 03 Apr 2012 06:58:07 +0200 apport (2.0-0ubuntu2) precise; urgency=low * debian/control: Make dh-apport Multi-Arch: foreign, so that it can satisfy cross-build-dependencies. -- Colin Watson <cjwatson@ubuntu.com> Sat, 31 Mar 2012 02:29:55 +0100 apport (2.0-0ubuntu1) precise; urgency=low * New upstream release: This is the final 2.0 release, featuring the overhauled and simplified GUI, support for whoopsie-daemon, and client-side duplicate checking. - report.py, anonymize(): Only replace whole words, not substrings. (LP: #966562) - apport_python_hook.py: Fix filtering of org.freedesktop.DBus.Error.NoReply exceptions. (LP: #958575) - crashdb.py: When publishing the crash database, cut hash file names after quoting, to avoid that the quoting causes them to become too long. (LP: #968070) This also uncovered that known() did not actually find any signature which contained an URL-quoted character, therefore breaking client-side duplicate checking in a lot of cases. Double-quote the file name now, as urlopen() unquotes it. - Add a new crash database option "problem_types" and a CrashDatabase method "accepts(report)". This can be used to stop uploading particular problem report types to that database. E. g. a distribution might decide to not get "Crash" reports any more after release. Document the new option in doc/crashdb-conf.txt. - ui.py: Do not upload a report if the crash database does not accept the report's type. This behaviour is not really correct, but necessary as long as we only support a single crashdb and have whoopsie hardcoded. Once we have multiple crash dbs, we need to not even present the data if none of the DBs wants the report. See LP #957177 for details. (LP: #968121) - ui.py: Do not short-circuit information collection if report already has a "DistroRelease" field, as the GUIs add that in some cases. Check for "Dependencies" instead. This fixes information collection for kernel problems (which now has a full GTK GUI test case). (LP: #968488) * Merge from trunk: - test_ui_gtk.py: Disable package hooks for the tests, as they might ask for sudo passwords and other interactive bits, and thus make the tests hang. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 30 Mar 2012 12:38:02 +0200 apport (1.95-0ubuntu1) precise; urgency=low [ Martin Pitt ] * New upstream release: - apport-gtk, apport-kde: When reporting a "system crash", don't say "... of this program version", but "...of this type", as we don't show a program version in the initial dialog (https://wiki.ubuntu.com/ErrorTracker#error) (LP: #961065) - problem_report.py, write_mime(): Do not put a key inline if it is bigger than 1 kB, to guard against very long lines. (LP: #957326) - etc/cron.daily/apport: Do not remove whoopsie's *.upload* stamps every day, only if they are older than a week. whoopsie comes with its own cron job which deals with them. Thanks Steve Langasek. (LP: #957102) - report.py, mark_ignore(): Fix crash if executable went away underneath us. (LP: #961410) - apport-gtk: Do not compare current continue button label against a translated string. Instead just remember whether or not we can restart the application. (LP: #960439) - hookutils.py, command_output(): Add option to keep the locale instead of disabling it. - hookutils.py, command_output(): Actually make the "input" parameter work, instead of causing an eternal hang. Add tests for all possible modes of operation. - hooktuils.py: Change root_command_output() and attach_root_command_outputs() to disable translated messages (LC_MESSAGES=C) only as part of the command to be run, not already for the root prefix command. This will keep the latter (gksu, kdesudo, etc.) translated. (LP: #961659) - apport-gtk: Cut off text values after 4000 characters, as Gtk's TreeView does not get along well with huge values. KDE's copes fine, so continue to display the complete value there. (LP: #957062) - apport-gtk: Make details window resizable in bug reporting mode. - crashdb.py, known(): Check the address signature duplicate database if the symbolic signature exists, but did not find any result. (LP: #103083) - ui.py: Run anonymization after checking for duplicates, to prevent host or user names which look like hex numbers to corrupt the stack trace. (LP: #953104) - apport-gtk: Require an application to both have TERM and SHELL in its environment to consider it a command line application that was started by the user. (LP: #962130) - backends/packaging-apt-dpkg.py, _check_files_md5(): Fix double encoding, which caused UnicodeDecodeErrors on non-ASCII characters in an md5sum file. (LP: #953682) - apport-kde, apport-gtk: Only show "Relaunch" if the report has a ProcCmdline, otherwise we cannot restart it. (LP: #956173) - apport-gtk, apport-kde: Show the ExecutablePath while we're collecting data for the crash report. Thanks Evan Dandrea. (LP: #938707). * debian/copyright: Change to copyright format 1.0. * debian/control: Bump Standards-Version to 3.9.3. [ Brian Murray ] * data/general-hooks/ubuntu.py: use main.log to determine UpgradeStatus not apt.log (LP: #886111) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 22 Mar 2012 18:55:17 +0100 apport (1.94.1-0ubuntu2) precise; urgency=low * Merge from trunk: - ui.py: Ensure that the report file is readable by the crash reporting daemon after running through collect_info(). Thanks Evan Dandrea. - apport-gtk, apport-kde: Set the window title to the distribution name, as per http://wiki.ubuntu.com/ErrorTracker#error . Thanks Evan Dandrea. (LP: #948015) - test/run: Ignore obsolete packages on the system, to avoid breaking the GUI tests due to them. - hookutils.py, attach_alsa(): Add the full "pacmd list" output instead of just sinks and sources. Thanks David Henningsson. - apport-gtk: Fix handling of non-ASCII strings in message dialogs. (LP: #865394) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 09 Mar 2012 16:52:53 +0100 apport (1.94.1-0ubuntu1) precise; urgency=low * New upstream bug fix release. Changes since our previous snapshot: - apport-cli: Consistently handle unicode vs. byte arrays. (LP: #946207) - report.py, anonymize(): Fix crash when the hostname or user name contain non-ASCII characters. (LP: #945230) - packaging-apt-dpkg.py: Fix UnicodeDecodeError on unexpected md5sum output. (LP: #921037) - apport-gtk: Fix handling of non-ASCII strings in message dialogs. (LP: #865394) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 07 Mar 2012 14:47:31 +0100 apport (1.94-0ubuntu2) precise; urgency=low * Merge from trunk: - collect_info(): Do not assume that reports have a "ProblemType" field. This is not the case when updating a bug. (LP: #947519) - Re-enable inadvertently disabled "bug report for uninstalled package" test. - Update translations from Launchpad. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 06 Mar 2012 11:37:17 +0100 apport (1.94-0ubuntu1) precise; urgency=low [ Martin Pitt ] * New upstream release: - apport: Set the group of written reports to "whoopsie" if that group exists. - Fix tests to run properly against the system-installed modules and binaries. - test/run: Run under LC_MESSAGES=C to avoid test failures due to translated strings. - general-hooks/generic.py: Also attach xsession-errors for programs that link to libgtk-3. - launchpad.py: Properly handle "Expired" status, to avoid marking new bugs as duplicates of expired ones. (LP: #941854) - apport: Fix crash if the "whoopsie" group does not exist. (LP: #942326) - report.py, crash_signature(): Do not put "<module>" frames into Python crash signatures that happen outside of function/method calls. Fall back to the file/line number as a frame description instead. This will do a much better job at disambiguating e. g. different ImportError crashes. (LP: #920403) - Make "binary changed since the time of the crash" error message more comprehensible, thanks Paolo Rotolo. (LP: #942830) - crashdb.py, check_duplicate(): It can happen that a bug gets identified as being a duplicate of bug S by symbolic signatures and a duplicate of bug A by address signatures. Empirical evidence shows that this is due to the unavoidable jitter in stack traces (A and S not being identified as duplicates as their signatures differ slightly) and not a logic error. So instead of erroring out, duplicate all three bugs and keep the lowest number as the master ID. (LP: #943117) - Revert the usage of multiple nested threads during data collection, and switch back to only using one UI thread. The UI implementations can, and now do, decide between showing a spinner and showing a progress dialog in the ui_*_info_collection_progress() methods. This fixes libX11 crashes when multiple UI threads do changes concurrently (LP: #901675), and also avoids multi-thread induced crashes in Pango (LP: #943661). The removal of the collect() method also fixes the new crashes in it. (LP: #942098, #939803) - ui.py, get_desktop_entry(): Fix crash on uninstalled package. (LP: #940984) - data/unkillable_shutdown: Fix crash on race condition when PID goes away while the report is created. (LP: #546369) - apport/hookutils.py, pci_devices(): Fix crash on unexpected lines from lspci. (LP: #904489) - Drop hardcoded "Ubuntu" words again which crept in with the whoopsie support merge. Use the DistroRelease: field. - apport-kde: Fix Home page URL in KApplication metadata. - apport-gtk: Fix resizability and size after hiding details. (LP: #405418) - test/run: Drop "local" argument. This now tests against the source tree when run in the source tree root, and against the system libraries/programs when run from anywhere else. - test/run: Consider command line arguments as test names and only run those when given. Also support just running a single test. - testsuite: Force the skipping of online tests when $SKIP_ONLINE_TESTS is set. - hookutils.py, xsession_errors(): Add a reasonable default pattern which matches glib-style warnings, errors, criticals etc. and X window errors. In data/general-hooks/generic.py, call it with that default instead of the rather incomplete custom pattern. (LP: #932660) - packaging.py: Add get_package_origin() method, and implement it for apt-dpkg. - report.py, add_package_info(): Add "[origin: ...]" tag to "Package" and "Dependencies" fields for any package which is not native to the distribution. If any such package is present, tag the report with "third-party-packages" in data/general-hooks/generic.py. (LP: #927912) - apport/packaging.py: Add get_uninstalled_package() method as a helper method for the test suite. Use it instead of a hardcoded Debian/Ubuntu specific name in test/test_hooks.py. - test/test_ui_{gtk,kde}.py: Add test cases for complete UI workflow runs for reporting a bug against an installed/uninstalled package, and reporting a crash with and without showing details. This reproduces the recent crashes like LP #901675 or LP #943661. - test_ui.py: Add a test case for reporting a complete report on uninstalled package. This happens when reporting a problem from a different machine through copying a .crash file. - test/run: Add a test that there are no hardcoded "Ubuntu" words in the source. The code should use the DistroRelease: field or lsb_release. * debian/apport-retrace.install: Ship crash-digger. There is no reason any more not to, as it's now very easy to set up a retracer bot environment. * debian/apport.install: Install crash.{class,jar} into test suite directory, so that the test_java_crashes.py test can run. * debian/control: Tighten dependencies to ensure that we don't run a newer UI package against an older python-apport, which would cause crashes due to API mismatches. (LP: #939702) * Drop test/test_backend_rpm.py, as we also drop the RPM backend in the Ubuntu branch. * debian/rules: Update test suite invocation, the "local" argument is obsolete. [ Brian Murray ] * data/package-hooks/source_linux.py: add in ProcFB -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 Mar 2012 15:32:07 +0100 apport (1.93-0ubuntu2) precise; urgency=low [ Martin Pitt ] * debian/control: Add python-launchpadlib and psmisc build dependencies for the test suite. * Merge from trunk: - apport: Set the group of written reports to "whoopsie" if that group exists. [ Brian Murray ] * data/package-hooks/source_ubiquity.py: prevent reporting of bugs where there was an I/O error with the disk being installed to or from (LP: #874727) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 23 Feb 2012 17:54:54 +0100 apport (1.93-0ubuntu1) precise; urgency=low * New upstream bug fix release: - apport-gtk: Fix crash on nonexisting icon. Thanks Evan Dandrea. (LP: #937354) - ui.py, open_url(): Revert back to calling sudo instead of dropping privileges ourselves; with the latter, calling firefox as the sudo'ing user fails. (LP: #916810, #938128) - ui.py: Fix aborting with "AssertionError" if the report is already known, but without an URL. (LP: #938778) - launchpad.py: If a bug is already known, but the report is private, do not send the report. There is little sense piling up lots of duplicates. (LP: #938700) - test/crash: Fix regression of test_crash_apport(), consider $TERM a non-sensitive variable. - ui.py: Fix test failures for data collection progress, they are not expected to happen for "ProblemType: Crash" any more (happens in the background during sending, or if user clicks on "Show Details"). - test/hooks: Use a package from Debian/Ubuntu main, so that this works better during package builds on build servers. - test/python: Do not assume that /var/crash/ exists. Use /var/tmp/ for the fake binaries instead. - data/general-hooks/parse_segv.py: Fix test case name. - ui.py: Fix crash on invalid core dumps. (LP: #937215) - launchpad.py: Fix crash on unicode report titles. (LP: #896626) - apport-gtk: Show the most interesting fields first in the details view. - do-release: Call pyflakes and abort on errors other than unused imports. - Move all test suites out of the code modules into test/test_<module>.py. This avoids having to load it every time the program runs, and also allows running the tests against the installed version of Apport. - Clean up the other executable test script in test/* and change them to the same structure as the module tests. * debian/control: Add python-mock and GTK gir build dependencies for the gtk/kde tests. * debian/control: Add procps dependency to avoid a "command not found" error for killall in the ubuntu.py general hook during the test suite. * debian/control: Add missing python-gi dependency to apport-gtk. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 23 Feb 2012 16:22:37 +0100 apport (1.92-0ubuntu1) precise; urgency=low [ Martin Pitt ] * New upstream release: - man/apport-bug.1: Mention where crash files are stored. Thanks David Kastrup. - hookutils.py, attach_hardware(): Sort ProcModules, thanks Brian Murray. - launchpad.py: Keep "Dependencies" attachment in duplicates. Thanks Brian Murray. - Reorganize the GNOME and KDE user interface to do the crash notifications and detail browser in a single dialog. Add test/gtk and test/kde tests to check expected dialog layout for different cases. Thanks Evan Dandrea! - Add support for the whoopsie-daisy crash reporting daemon by creating zero-byte .upload file stamps for crash reports. Thanks Evan Dandrea! - ui.py: Fix wrong creation of "~" folder instead of expanding it to home directory when using "Examine locally". Thanks Jason Conti! (LP: #909149) - Replace file() calls with open() for Python 3 compatibility. Thanks Colin Watson! - launchpad.py: Avoid sending tag names with upper case. (LP: #924181) - report.py, crash_signature_addresses(): Fix crash if report does not have "Signal". - apport-gtk: Fix resize handling of expander in details window. Thanks Thomas Bechtold! (LP: #930562) - Clean up unnecessary imports. Thanks Evan Dandrea! * debian/apport-kde.install: Ship new spinner.gif. [ Brian Murray ] * data/package-hooks/source_ubiquity.py: include kernel command line from ubiquity syslog in the report as InstallCmdLine * data/package-hooks/source_ubiquity.py: move apport-bug failures due to grub-installer to that package (LP: #878335) * debian/control: Add xvfb dependency so that the test suite can run the GUI tests. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 20 Feb 2012 16:55:29 +0100 apport (1.91-0ubuntu1) precise; urgency=low * New upstream release: - crashdb.py, check_duplicate(): If a crash has a signature but no existing duplicate in the DB, also check for an existing address signature duplicate in the DB. - apport-retrace: Use DistroRelease specific subdirectory of the cache dir for mapping a file to a package, as these maps are release specific. - packaging-apt-dpkg.py: Refresh Contents.gz cache if it is older than one day. - crashdb.py: Ensure that address_signature duplicate db table does not have multiple identical signatures by making it a primary key. Bump the db format to "3". Existing databases need to be migrated manually as SQLite does not allow adding a "PRIMARY KEY" constraint to existing tables. - crashdb.py: Do not add a new address signature entry if one already exists. - apport-cli: Fix UnicodeDecodeError on unicode report values. (LP: #275972) - launchpad.py: Only set bug task importance if it is undecided. - apport-retrace: Fix "an useful" typo. (LP: #911437) - report.py: Filter out frames which are internal kernel/glibc implementation details and not stable across duplicates. In particular, filter out __kernel-syscall() and the SSE stubs. - crashdb.py: Remove debugging leftover which completely disabled bug pattern checking. - report.py: Update reading AssertionMessage. Current (e)glibc turned __abort_msg from a simple static string into a struct. - Change permissions of .crash files from 0600 to 0640, so that /var/crash can be made g+s and crash handling daemons can access those. - Python exceptions: Blacklist DBus.Error.NoReply. It does not help to get these traces from the client-side application, you need the actual exception in the D-Bus server backend instead. (LP: #914220) - Support /etc/apport/whitelist.d/ similarly to /etc/apport/blacklist.d/, for cases like installer environments where only crashes of a few selected programs should be reported. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 18 Jan 2012 09:56:00 +0100 apport (1.90-0ubuntu2) precise; urgency=low [ Martin Pitt ] * debian/control: Move from transitional python-gobject to python-gi. * debian/control: Add gdb dependency to apport-retrace. * apport/crashdb.py: Remove debugging leftover which completely disabled bug pattern checking. Cherrypicked from trunk r2120. [ Brian Murray ] * data/general-hooks/ubuntu.py: improve match for hard disk errors * data/package-hooks/source_ubiquity.py: tag ubiquity bugs ubiquity-upgrade * data/package-hooks/source_linux.py: disable question regarding uploading oops to kerneloops.org -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 13 Jan 2012 16:58:28 +0100 apport (1.90-0ubuntu1) precise; urgency=low * New upstream release: First beta release of 2.0 which introduces client-side duplicate checking. - report.py: Break out new method stacktrace_top_function() from standard_title(), so that other parts of the code can use this as well. - launchpad.net: When sending retraced results back to the bug report, update the topmost function in the bug title. (LP: #869970) - report.py, add_gdb_info(): Add a new field "StacktraceAddressSignature" which is a heuristic signature for signal crashes. This should be used if crash_signature() fails, i. e. the Stacktrace field does not have enough symbols. This can be used to check for duplicates on the client side, provided that the crash database server supports querying for these. Do not expose this field when uploading to crash databases though, as it can be recomputed from the already existing information (ProcMaps and Stacktrace) and thus would just clutter the reports. - crashdb.py: Add a table "version" with the database format version. Add automatic upgrading to the most current format. - crashdb.py: Put address signatures from reports checked with check_duplicate() into the duplicate database, so that implementations of known() can check for these. - dupdb-admin: Add "publish" dupdb-admin command which exports the duplicate database into a set of text files suitable for WWW publishing. - crashdb.py: Add new method "known(report)" which can be implemented to check if the crash db already knows about the crash signature. If so, the report will not be uploaded, and instead the user will be directed to the existing report URL (if available), similar to bug patterns. The default implementation checks this format, if the crash database is initialized with a "dupdb_url" option pointing to the exported database. - launchpad.py: Override known() to check if the master bug is actually accessible by the reporter, and is not tagged with "apport-failed-retrace" or "apport-request-retrace"; otherwise file it anyway. - crash-digger: Add --publish-db option to conveniently integrate duplicate DB publication (similar to dupdb-admin publish) into retracer setups. - launchpad.py: Attach updated stack traces from a duplicate to the master bug if it failed retracing previously or has an "apport-request-retrace" tag. (LP: #869982) - apport-kde, apport-gtk: Support the "Annotation" field for custom dialog titles for "Crash" and "Package" problem types as well, not just for "Kernel". (LP: #664378) - backends/packaging-apt-dpkg.py: Fix another test case failure when ddeb repository is not enabled. - backends/packaging-apt-dpkg.py: Fix handling of explicit cache directory name when it is a relative path. - launchpad.py: Only query for bugs after 2011-08-01, to avoid timeouts. - ui.py: Also anonymize standard bug title. (LP: #893863) - launchpad.py: Current Launchpad cannot have private bugs which affect multiple projects. Fix test suite accordingly. * data/general-hooks/ubuntu.py: Fix crash if "apport" package is not installed, which might happen on local installs or running the test suite. * etc/default/apport: Re-enable Apport by default; we want reports early in Precise, and we also do not have unstable GNOME versions this time which have known problems. We also have client-side duplicate detection now which should mitigate the noise. * Drop debian/pyversions, debian/pycompat: Obsolete with dh_python2. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 24 Nov 2011 16:17:16 +0100 apport (1.26-0ubuntu1) precise; urgency=low * New upstream release: - backends/packaging-apt-dpkg.py: Port to current python-apt API. - hookutils.py: Fix path_to_key() to also work with unicode arguments. - test/crash: Exit successfully if apport is not enabled in the system. This allows packages to run the test suite during build. - report.py, add_proc_info(): Correctly handle "python -m <modulename>" programs as being interpreted and determine the appropriate module path. - Fix some import statements to also work for the system-installed test suite. - test/run: Fix testing data/general-hooks/parse_segv.py when called in system-installed mode. - apport/ui.py: Clean up test .crash file after test cases. - Fix tests when running as root. - setup.py: Fix crash when "javac -version" fails. - README: Update command for one-time enablement. - backends/packaging-apt-dpkg.py: Fix interleaving usage of install_packages() with other operations such as get_version(), by resetting the apt status after building and using the sandbox. - report.py test suite: Remove requirement that $USER is set, which makes it easier to run this from package build environments. - apport/ui.py, test/crash: Use "yes" as test process instead of "cat". The former is less likely to run already, and does not depend on having a stdin, so it runs better in test environments like autopkgtest. - backends/packaging-apt-dpkg.py: Fix tests if system does not have a dbgsym apt source. - Ignore a crash if gnome-session is running and says that the session is being shut down. These often die because X.org or other services are going away, are usually harmless, and just cause a lot of clutter in bug trackers. (LP: #460932) - test/crash: Rewrite using Python's unittest, to be in line with other tests, and be easier to maintain and extend. * Add debian/tests/control and debian/tests/upstream-system: DEP-8/autopkgtest control file for running the upstream tests. * debian/control: Bump minimal Python version to 2.7, as the upstream trunk is now moving to Python 3 compatibility; some of the new syntax does not work with 2.6 yet. * debian/control: Update apport-retrace package description, apport-chroot is gone. Also drop the now obsolete Suggests. * debian/rules: Run tests during package build, but do not let them fail the build just yet. It will still take a while until all test suceed in the buildd environment. * debian/control: Add gdb and python-twisted-core build dependencies, so that the test suite can succeed. * debian/control: Move python-gobject and gir1.2-glib-2.0 dependencies from apport-gtk to apport, as our generic.py hook needs it. Also add them to build depends for the test suite. * debian/control: Add missing lsb-release dependency, used by Report.add_os_info(). * debian/control: Add net-books build dependency, test suite uses "route" to determine whether or not to run the online tests. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 11 Nov 2011 11:32:49 +0100 apport (1.25-0ubuntu1) precise; urgency=low * New upstream release: - Add new response "Examine locally" to presenting the report details, which runs apport-retrace in the chosen mode in a terminal. This should be made available for crash reports if apport-retrace and a Terminal application are installed; add an abstrace UI method for this. (LP: #75901) - apport-gtk: Add "Examine locally..." button, and implement ui_run_terminal(). - apport-cli: Add "Examine locally..." responses, and implement ui_run_terminal(). - apport-cli: Greatly speed up displaying large reports. This also changes the format to avoid indenting each line with a space, and visually set apart the keys in a better way. - apport_python_hook.py: Move tests out of this file into test/python, to avoid having to parse the unit tests at each Python startup. - test/python: Also make tests work if Python hook is not installed in system's sitecustomize.py. - packaging.py: Add get_modified_conffiles() API, and implement it in packaging-apt-dpkg.py. - hookutils.py: Add attach_conffiles(). - hookutils.py: Add attach_upstart_overrides(). - launchpad.py: Remove "Ubuntu" in bug response, replace with "this software". (LP: #883234) - apport-kde: Rearrange order of imports to get intended error message if PyKDE is not installed. - packaging-apt-dpkg.py: Ignore hardening-wrapper diversions, to make gcc_ice_hook work if hardening-wrapper is installed. - apport_python_hook: Respect $APPORT_REPORT_DIR. - apport_python_hook: Limit successive crashes per program and user to 3 per day, just like signal crashes. (LP: #603503) - packaging-apt-dpkg.py: Skip online tests when there is no default route. - ui.py: Fix test suite to not fail if system has some obsolete or non-distro packages. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 02 Nov 2011 20:45:08 -0400 apport (1.24-0ubuntu1) precise; urgency=low * New upstream release 1.23.1: - apport/crashdb.py: Ensure that duplicate table only has one entry per report ID. - apport-retrace: Pass correct executable path to gdb in --gdb with --sandbox mode. - apport-retrace: Do not leave behind temporary directories on errors. - apport-retrace: Drop assertion failure for existance of "Stacktrace". This isn't present in the case of gdb crashing, and there is not much we can do about it. This should not break the retracer. - apport/report.py: Unwind XError() from stack traces for the "StacktraceTop" field, as they take a significant part of the trace. This causes bugs to be duplicated which really have different causes. * New upstream release 1.24: - apport-retrace: Add --timestamp option to prepend a timestamp to log messages. This is useful for batch operations. - crash-digger: Call apport-retrace with --timestamps, to get consistent timestamps in log output. - hookutils.py: Add two new functions attach_gsettings_package() and attach_gsettings_schema() for adding user-modified gsettings keys to a report. (LP: #836489) - hookutils.py: Add new function in_session_of_problem() which returns whether the given report happened in the currently running XDG session. This can be used to determine if e. g. ~/.xsession-errors is relevant and should be attached. - backends/packaging-apt-dpkg.py, install_packages(): Also copy apt/sources.list.d/ into sandbox. - backends/packaging-apt-dpkg.py, install_packages(): Install apt keyrings from config dir or from system into sandbox. (LP: #856216) - packaging.py, backends/packaging-apt-dpkg.py: Define that install_packages() should return a SystemError for broken configs/unreachable servers etc., and fix the apt/dpkg implementation accordingly. - apport-retrace: Don't crash, just give a proper error message if servers are unreachable, or configuration files are broken. (LP: #859248) - backends/packaging-apt-dpkg.py: Fix crash when /etc/apport/native-origins.d contains any files. (LP: #865199) - hookutils, recent_logfile(): Fix invalid return value if log file is not readable. (LP: #819357) - test/crash: Fix race condition in the "second instance terminates immediately" check. - hookutils.py: Replace attach_gconf() with a no-op stub. It used static python modules like "gconf" which broke the PyGI GTK user interface, and gconf is rather obsolete these days. - ui.py, open_url(): Greatly simply and robustify by just using xdg-open. This already does the right thing wrt. reading the default browser from GNOME, KDE, XCE, and other desktops. (LP: #198449) - data/general-hooks/generic.py: Only attach ~/.xsession_errors if the bug is reported in the same XDG session as the crash happened. (LP: #869974) - Ignore crashes for programs which got updated in between the crash and reporting. (LP: #132904) - Special-case crashes of 'twistd': Try to determine the client program and assign the report to that, or fail with an UnreportableReason. (LP: #755025) - apport-gtk: In bug update mode, make details dialog resizable and fix default size. (LP: #865754) - apport-gtk: Fix crash if report does not have ProcCmdline. (LP: #854452) - hookutils.py, attach_wifi(): Anonymize ESSID and AP MAC from "iwconfig" output. (LP: #746900) - test/crash: Fix test failure if user is not in any system groups. - test/crash: Change to /tmp/ for test crash process, to fix failure if the user that runs the test suite cannot write into the current directory. (LP: #868695) - ui.py: Improve error message if package is not a genuine distro package. Thanks to Ronan Jouchet. (LP: #559345) * debhelper/dh_apport: Install debian/source.apport into the first binary package only, as per documentation. (LP: #687584) * debian/apport.upstart: Exit pre-start with 0 if apport is disabled, to avoid warning message about failed startup. (LP: #857086) * debian/control: Update Vcs-Bzr: for precise branch. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 19 Oct 2011 09:39:41 +0200 apport (1.23-0ubuntu3) oneiric; urgency=low * etc/default/apport: Disable for final Oneiric release. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 05 Oct 2011 16:41:07 +0200 apport (1.23-0ubuntu2) oneiric; urgency=low [ Martin Pitt ] * debian/control: Bump GIR dependencies to ensure that we don't run this against older versions against gir1.2-glib-2.0, which still have a wrong API for markup_escape_text(). (LP: #851450) [ Brian Murray ] * data/general-hooks/ubuntu.py: also check CurrentDmesg for disk errors as some package hooks add it * data/package-hooks/source_debian-installer.py: for dmraid collection use attach_root_command_outputs (LP: #856826) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 28 Sep 2011 07:12:19 +0200 apport (1.23-0ubuntu1) oneiric; urgency=low [ Brian Murray ] * data/package-hooks/source_ubiquity.py: Do not create a DuplicateSignature for bugs with a Traceback included as it is redundant [ Martin Pitt ] * New upstream release: - crashdb.py, crash-digger, dupdb-admin: Drop the concept of "duplicate DB consolidation". Such massive queries cause timeouts with e. g. Launchpad. Instead, update the status of potential master bugs in the crash DB whenever check_duplicate() is called. Note that this does not affect Ubuntu itself, just the retracers in the data center. - launchpad.py: Fix crash in close_duplicate() if master bug was already marked as a duplicate of the examined bug. - problem_report.py, load(): Fix missing last character if the last line in a multi-line field is not terminated with a newline. - launchpad.py: Fix test_marking_python_task_mangle() check to work with current Launchpad. - apport-retrace: If the user did not specify a --cache directory, create a shared one instead of letting the two install_packages() calls create their own. This ensures that the apt and dpkg status is up to date, and avoids downloading the package indexes multiple times. (LP: #847951) - apport-retrace: Give proper error mesage instead of AssertionError crash if a report does not contain standard Apport format data. (LP: #843221) - fileutils.py, get_new_reports(): Fix crash if report file disappears in the middle of the operation. (LP: #640216) - apport/ui.py, load_report(): Intercept another case of broken report files. (LP: #445142) - apport/report.py, standard_title(): Escape regular expression control characters in custom exception names. (LP: #762998) * data/package-hooks/source_ubiquity.py: Fix crash if prepare_duplicate_signature() does not return anything. (LP: #843911) * debian/control: Bump Standards-Version to 3.9.2 (no changes necessary). -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 14 Sep 2011 08:29:03 +0200 apport (1.22.1-0ubuntu2) oneiric; urgency=low * data/general-hooks/ubuntu.py: include apport version in bug reports since apport contains code for blocking bug reports and source package hooks -- Brian Murray <brian@ubuntu.com> Thu, 08 Sep 2011 20:09:57 +0200 apport (1.22.1-0ubuntu1) oneiric; urgency=low [ Martin Pitt ] * New upstream release: - dupdb-admin: Add "removeid" command. - dupdb-admin: Use the in-memory CrashDB implementation for simple operations like dump or changeid, which do not require an actual backend. This makes the command work in checkouts without a /etc/apport/crashdb.conf. - dupdb-admin: Fix UnicodeEncodeError crash. - launchpad.py: Fix crash if a crash report does not have a DistroRelease. - Set the default "Apport" title for choice dialogs instead of the default apport-gtk title. Thanks Robert Roth. (LP: #608222) - apport-gtk: Update markup_escape_text() call to current glib. (LP: #829635) * data/package-hooks/source_ubiquity.py: Only set a DuplicateSignature and change the source package if we are reporting a package or program crash, not for ProblemType == 'Bug'. [ Brian Murray ] * data/general-hooks/ubuntu.py: check the device holding /, /var and /usr partitions for I/O errors and if they exist make the bug unreportable * data/package-hooks/source_ubiquity.py: Use attachment OemConfigLog to determine whether or not to tag the bug oem-config not information in syslog -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 06 Sep 2011 08:16:46 +0200 apport (1.22-0ubuntu3) oneiric; urgency=low * data/package-hooks/source_ubiquity.py: Fix crash on undefined 'version'. (LP: #837048) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 30 Aug 2011 06:35:43 +0200 apport (1.22-0ubuntu2) oneiric; urgency=low * data/package-hooks/source_ubiquity.py: create a duplicate signature for ubiquity bug reports using data in syslog -- Brian Murray <brian@ubuntu.com> Fri, 26 Aug 2011 13:17:38 -0400 apport (1.22-0ubuntu1) oneiric; urgency=low [ Brian Murray ] * data/general-hooks/ubuntu.py: generate a DuplicateSignature tag for distribution upgrades too. [ Martin Pitt ] * New upstream release: - Completely rework apport-retrace to use gdb's "debug-file-directory" and "solib-absolute-prefix" settings and only unpack the necessary packages in a temporary directory. This makes it possible to use it in a running system without actually touching installed packages, does not need any root privileges, and stops the requirement of using chroots with fakechroot and fakeroot. This is a lot easier to maintain and use, and a lot faster, too. As a consequence, drop the chroot module, and update crash-digger accordingly. See "man apport-retrace" for the new usage. It is now also easier to port to other packaging backends, as a lot of the common logic moved out of the packaging API; packaging.install_retracing_packages() got dropped in favor of the simpler packaging.install_packages(). (LP: #832740) - launchpad.py: When searchTasks() times out, exit with 99 as this is a transient error. - crash-digger: Intercept OverflowError from downloaded compressed attachments. - crash-digger: Show how many bugs are left in the pool with each new retrace. * Drop debian/local/apport-chroot and manpage, and ubuntu-fat-chroot. These are obsolete now with the new apport-retrace. * Drop debian/local/setup-apport-retracer: Most of it is obsolete now, setting up a retracer merely needs an lp:apport checkout and creating an apt sources file, we don't need a script for that any more. * data/general-hooks/ubuntu.py: Fix invalid "continue" statement in DuplicateSignature code. (LP: #828037) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 25 Aug 2011 16:31:37 +0200 apport (1.21.3-0ubuntu4) oneiric; urgency=low * data/package-hooks/source_ubiquity.py: remove use of continue when not in a loop (LP: #828037) -- Brian Murray <brian@ubuntu.com> Wed, 17 Aug 2011 07:34:21 -0700 apport (1.21.3-0ubuntu3) oneiric; urgency=low * Fix crash in GLib.markup_escape_text() call. Patch cherrypicked from trunk. (LP: #828010) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 17 Aug 2011 15:52:22 +0200 apport (1.21.3-0ubuntu2) oneiric; urgency=low * data/package-hooks/source_ubiquity.py: - attach the contents of syslog in the case where it is readable by the user (LP: #824799) - prevent reporting of bugs due to I/O error with installation media -- Brian Murray <brian@ubuntu.com> Wed, 17 Aug 2011 14:43:21 +0200 apport (1.21.3-0ubuntu1) oneiric; urgency=low * New upstream bug fix release. Changes since our previous snapshot: - Add apport.packaging.get_library_paths() interface and implement it for backends/packaging-apt-dpkg.py using dpkg multiarch directories. Use it in chroot.py. This unbreaks apport-chroot for oneiric. - hookutils.py: Don't attach empty values. Thanks Bryce Harrington. (LP: #813798) - apport-gtk: Correctly pass message dialog type. - apport-gtk: Fix GLib and GObject imports to be compatible with the future pygobject 3.0. - hookutils.py, attach_alsa(): Get a list of outputs/inputs that PulseAudio knows about, which also shows the currently selected output/input, as well as volumes. This should help with "no sound" bug troubleshooting. Thanks Luke Yelavich. * data/general-hooks/ubuntu.py: Fix crash if report doesn't have a Package field (caught by test suite). * data/general-hooks/ubuntu.py: Fix crash if report doesn't have a DpkgTerminalLog field (caught by test suite). -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 17 Aug 2011 08:42:18 +0200 apport (1.21.2-0ubuntu14) oneiric; urgency=low * data/general-hooks/ubuntu.py: resolve issue with the contents of DuplicateSignature being truncated -- Brian Murray <brian@ubuntu.com> Sat, 13 Aug 2011 11:40:07 -0700 apport (1.21.2-0ubuntu13) oneiric; urgency=low * data/general-hooks/ubuntu.py: do not report package installation failures where the conflicting package is not a genuine Ubuntu package -- Brian Murray <brian@ubuntu.com> Thu, 11 Aug 2011 12:40:11 -0700 apport (1.21.2-0ubuntu12) oneiric; urgency=low * Merge change from trunk: - apport/hookutils.py: properly detect as non-root when auditd is being used, use egrep as we're using an extended regex. -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 10 Aug 2011 13:42:27 -0400 apport (1.21.2-0ubuntu11) oneiric; urgency=low * data/general-hooks/ubuntu.py: - create a duplicate signature for package installation failures - tag install failures due to a package conflict 'package-conflict' (LP: #368435) -- Brian Murray <brian@ubuntu.com> Wed, 10 Aug 2011 09:02:04 -0700 apport (1.21.2-0ubuntu10) oneiric; urgency=low * data/package-hooks/source_debian-installer.py: - collect installation log files (LP: #820582) * data/package-hooks/source_ubiquity.py: - tag bug reports using the version of ubiquity and oem-config if applicable -- Brian Murray <brian@ubuntu.com> Thu, 04 Aug 2011 11:48:25 -0700 apport (1.21.2-0ubuntu9) oneiric; urgency=low * data/package-hooks/source_linux.py: - kernel driver tag needs a space before it - add grub-pc to related package version if an apport-package bug -- Brian Murray <brian@ubuntu.com> Mon, 25 Jul 2011 12:36:54 -0700 apport (1.21.2-0ubuntu8) oneiric; urgency=low * data/package-hooks/source_linux.py: - ensure Oops with RIP get tagged with the kernel-driver -- Brian Murray <brian@ubuntu.com> Fri, 22 Jul 2011 09:34:46 -0700 apport (1.21.2-0ubuntu7) oneiric; urgency=low [ Martin Pitt ] * data/general-hooks/ubuntu.py: Fix calling of add_info() in the __main__ test code. [ Brian Murray ] * data/package-hooks/source_ubiquity.py: - collect all logs using root_command_outputs (LP: #812738) * apport/hookutils.py: - check to see if the package has any upstart override files * data/general-hooks/ubuntu.py: - when reporting a problem use the upstart override check (LP: #803977) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 22 Jul 2011 16:51:22 +0200 apport (1.21.2-0ubuntu6) oneiric; urgency=low * data/general-hooks/ubuntu.py: - In addition to DpkgTerminalLog also check VarLogDistupgradeApttermllog for package installation failure messages - Also move postrm.d/zz-update-grub errors to grub2 * apport/hookutils.py: - raise a yes no dialog in the event a conffile has been modified (LP: #811203) -- Brian Murray <brian@ubuntu.com> Thu, 21 Jul 2011 06:36:04 +0200 apport (1.21.2-0ubuntu5) oneiric; urgency=low * data/general-hooks/ubuntu.py: - Check DpkgTerminalLog for more cases that indicate the bug report should be filed about grub2 * data/package-hooks/source_linux.py: - kerneloops was a transitional package we want the version of kerneloops-daemon -- Brian Murray <brian@ubuntu.com> Tue, 19 Jul 2011 07:20:07 +0200 apport (1.21.2-0ubuntu4) oneiric; urgency=low [ Brian Murray ] * data/package-hooks/source_linux.py: - tag kerneloops reports with the driver the Oops occurred in - include kerneloops package version in kerneloops reports [ Martin Pitt ] * Merge changes from trunk: - gtk/apport-gtk.desktop.in: Also show in Unity. (LP: #803519) - apport-unpack: Fix crash on file errors. - hookutils.py: Add attach_mac_events() for reporting logs of MAC systems. Looks for AppArmor messages for now. Thanks Marc Deslauriers! -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 14 Jul 2011 18:13:52 +0200 apport (1.21.2-0ubuntu3) oneiric; urgency=low * data/general-hooks/ubuntu.py: add in casper package version to bugs reported from Live Media -- Brian Murray <brian@ubuntu.com> Thu, 14 Jul 2011 06:30:51 +0200 apport (1.21.2-0ubuntu2) oneiric; urgency=low * data/package-hooks/source_ubiquity.py: - Check syslog for squashfs errors and do not report - Ask before adding installer debug log file (LP: #773766) -- Brian Murray <brian@ubuntu.com> Thu, 07 Jul 2011 13:40:17 -0700 apport (1.21.2-0ubuntu1) oneiric; urgency=low * New upstream bug fix release. Changes since our trunk snapshot: - generic hook: Don't report package installation failures due to segfaulting maintainer scripts. We want the actual crash report only. Thanks Brian Murray. - hookutils.py, attach_wifi(): Also include wpasupplicant logs. Thanks Mathieu Trudel-Lapierre! - report.py: Fix bug patterns to correctly match against compressed report fields. * gtk/apport-gtk.desktop.in: Also show in Unity. Cherrypicked from trunk. (LP: #803519) * etc/default/apport: Turn Apport back on by default for Alpha 2. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 01 Jul 2011 16:32:38 +0100 apport (1.21.1-0ubuntu2) oneiric; urgency=low * Merge from trunk: - test/run: Check $PYTHON for using a different Python interpreter (such as "python3") for the tests. - backends/packaging-apt-dpkg.py: Fix crash introduced in 1.21.1's multiarch fixes. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 22 Jun 2011 10:42:15 +0200 apport (1.21.1-0ubuntu1) oneiric; urgency=low * New upstream release: - data/general-hooks/generic.py: Also check for low space on /var. Thanks Brian Murray. - hookutils.py, attach_file() and attach_file_if_exists(): Add a new "overwrite" flag option. If not given, now default to overwriting an existing key, as this is usually what you need when attaching files (instead of attaching it several times with '_' appended to the keys). You can get the old behaviour by setting overwrite=False. - When showing the size of the full report, take the compressed size of binary values instead of their uncompressed size, as the crash db upload will use the compressed values. - backends/packaging-apt-dpkg.py: Fix for current dpkg with multiarch support. - test/run: Fix the test suite to run against the system installed libraries with current Python versions (2.6, 2.7) where __file__ does not work any more with imports. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 20 Jun 2011 11:53:30 +0200 apport (1.21-0ubuntu1) oneiric; urgency=low * New upstream release. Changes since our previous trunk merge: - Supply --desktop option to kdesudo to improve the description which program is requesting administrative privileges. - apport-checkreports: Exit with status 2 if there are new reports, but apport is disabled. This helps crash notification GUIs to not display new crash reports in that case. Thanks to Michael Vogt for the original patch. - Add data/is-enabled: Shell script to check if apport is enabled. Non-Python programs (which can't use apport.packaging.enabled() ) can call this instead of having to parse /etc/default/apport themselves, and just check the exit code. Inspired by original patch from Michael Vogt. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 08 Jun 2011 11:19:01 +0200 apport (1.20.1-0ubuntu6) oneiric; urgency=low * debian/control: Update Vcs-Bzr: to oneiric branch. * bin/apport-bug: Finally drop the long-deprecated -p/-P options. * gtk/apport-gtk: Stop forcing GTK 2, we move to GTK 3 now. Update GIR dependency accordingly. * man/apport-bug.1: Revert change to explain $APPORT_STAGING, this has been removed long ago. * Convert packaging from cdbs+python-central to dh7+dh_python2. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 17 May 2011 15:34:10 +0200 apport (1.20.1-0ubuntu5) natty; urgency=low [ Kees Cook ] * debian/rules: really ignore "start" result at install (LP: #767829). [ Brian Murray ] * Only prepend linux bug titles with [STAGING] if a title exists (LP: #767864). -- Kees Cook <kees@ubuntu.com> Wed, 20 Apr 2011 16:27:06 -0700 apport (1.20.1-0ubuntu4) natty; urgency=low * Ignore return code on startup (LP: #767498) -- Stéphane Graber <stgraber@ubuntu.com> Wed, 20 Apr 2011 16:55:58 -0400 apport (1.20.1-0ubuntu3) natty; urgency=low * Merge from trunk: - Use kde-open instead of kfmclient to open URLs under KDE. Thanks Philip Muškovac. (LP: #765808) * etc/default/apport: Disable by default for the final release. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 20 Apr 2011 18:57:27 +0200 apport (1.20.1-0ubuntu2) natty; urgency=low [ Brad Figg ] * The kernel team has decided that asking the user for a bunch of information which they may not be able to answer is the wrong thing to do. Therefore, all the propmpting of the user for said information has been removed. Also removed is the tagging of "needs-upstream-testing". [ Martin Pitt ] * Merge bug fixes from trunk: - apport-gtk: HTML-escape text for dialogs with URLs. (LP: #750870) - dump_acpi_tables.py: Check to see if acpi/tables dir is mounted first. Thanks Brian Murray. (LP: #729622) - man/apport-cli.1: Document recently added -w/--window option. Thanks Abhinav Upadhyay. (LP: #765600) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Apr 2011 11:04:57 +0200 apport (1.20.1-0ubuntu1) natty; urgency=low * New upstream bug fix release: - Add bash completion support for new -w/--window option that was introduced in 1.20. Thanks Philip Muškovac. - apport-unpack: Fix crash if target directory already exists. - Fix crash if UnreportableReason is a non-ASCII string. (LP: #738632) - Fix crash if application from desktop name is a non-ASCII string. (LP: #737799) - unkillable_shutdown: Fix rare crash if ExecutablePath does not exist (any more). (LP: #537904) - kernel_crashdump: Fix crash if the vmcore file disappeared underneath us. (LP: #450295) - unkillable_shutdown: Fix crash if the checked process terminated underneath us. (LP: #540436) - ui.py: Properly raise exceptions from the upload thread that happen at its very end. (LP: #469943) * data/package-hooks/source_ubiquity.py: Read root-only accessible log files as root. (LP: #745455) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 31 Mar 2011 17:37:16 +0200 apport (1.20-0ubuntu1) natty; urgency=low * New upstream release. Changes since our previous snapshot: - Add support for -w/--window option which will enable user to select a window as a target for filing a problem report. Thanks Abhinav Upadhyay. (LP: #357847) - Disable the filtering on SIGABRT without assertion messages. Turns out that developers want these crash reports after all. (LP: #729223) - Add support for a "DuplicateSignature" report fields. This allows package hooks to implement custom duplicate problem handling which doesn't need to be hardcoded in Apport itself. Update the launchpad backend to tag such bugs as "need-duplicate-check". - hookutils.py Update WifiSyslog regex to correctly catch application log messages in syslog. Thanks Mathieu Trudel-Lapierre. (LP: #732917) - hookutils.py, attach_hardware(): Avoid error message if machine does not have a PCI bus. Thanks Marcin Juszkiewicz. (LP: #608449) - backends/packaging-apt-dpkg.py: Replace deprecated getChanges() call with get_changes(). - apport-gtk: Fix broken dialog heading if the name of the crashed program contains an & or other markup specific characters. - apport-gtk: Don't crash if GTK cannot be initialized. This usually happens without a $DISPLAY or when the session is being shut down. Just print an error message. If there are pending crashes, they will be shown again the next time a session starts. (LP: #730569) * debian/local/apport-chroot: In retracing mode, fix the passed --auth and --duplicate-db arguments to be paths within the fakechroot. * debian/local/apport-chroot: Apply the same absolute path fix to retracing mode that we already applied to login mode in 1.19-0ubuntu1. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 18 Mar 2011 16:39:07 +0100 apport (1.19-0ubuntu3) natty; urgency=low * Merge fixes from trunk: - apport-retrace: Intercept SystemErrors from ill-formed gzip attachments as well. - Fix crash if crash database configuration does not specify a bug_pattern_url. Just assume None. (LP: #731526) - If a custom crash database does not specify a bug_pattern_url, fall back to using the default database's. (LP: #731526) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 09 Mar 2011 19:21:16 +0100 apport (1.19-0ubuntu2) natty; urgency=low * gtk/apport-gtk: Update require_version() call to current pygobject API. Bump python-gobject dependency accordingly. * Merge from trunk: - report.py, add_hooks_info(): Properly report TypeErrors from hooks. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 03 Mar 2011 17:20:41 +0100 apport (1.19-0ubuntu1) natty; urgency=low [ Martin Pitt ] * New upstream release: - apt backend: Do not generate a warning if the opportunistically added -dbg package does not exist. - apt backend: Only add -dbg in --no-pkg mode, as there will be conflicts in normal package mode. - apt backend: Call tar with target cwd instead of using -C; the latter causes an extra openat() call which breaks with current fakechroot. - launchpad.py: Fix retracer crash if DistroRelease field does not exist. - Convert deprecated failIf()/assert_() TestCase method calls to assertFalse()/assertTrue(). - In apport-bug, if the user specifies a PID referring to a kernel thread, do the right thing and file the bug against the kernel - In hookutils.attach_dmesg, skip over an initial truncated message if one is present (this happens when the ring buffer overflows) - Change bug patterns to just use one central file instead of per-package files. This allows bug patterns to be written which are not package specific, and is easier to maintain as well. IMPORTANT: This changed the format of crashdb.conf: bug_pattern_base is now obsolete, and the new attribute bug_pattern_url now points to the full URL/path of the patterns file. Thanks to Matt Zimmerman! * debian/local/setup-apport-retracer: Drop local installation of packages, we now just check that they are installed in the system. * debian/local/apport-chroot: Convert --auth argument to absolute path, as fakechroot needs that. [ Steve Langasek ] * data/general-hooks/ubuntu.py: don't collect bug reports on missing menu.lst - this is a user error that they need to fix up on their side. (LP: #668888) [ Matt Zimmerman ] * data/general-hooks/ubuntu.py: Add UpgradeStatus field to show if the system was upgraded from a previous release (and when) * debian/apport.install: actually install the java_uncaught_exception script -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 28 Feb 2011 12:16:22 +0100 apport (1.18-0ubuntu2) natty; urgency=low * Merge from trunk: - Update stack unwind patterns for current glib (slightly changed function names), and also ignore a preceding '*'. (LP: #716251) - Fix crash_signature() to fail if there is an empty or too short StacktraceTop. -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 20 Feb 2011 20:31:02 +0100 apport (1.18-0ubuntu1) natty; urgency=low [ Martin Pitt ] * New upstream release: - Ensure that symptom scripts define a run() function, and don't show them if not. - Do not show symptom scripts which start with an underscore. These can be used for private libraries for the actual symptom scripts. - Update bash completion. Thanks Philip Muškovac. - etc/default/apport: Remove obsolete "maxsize" setting. (LP: #719564) - Remove explicit handling of KDE *.ui files in setup.py, as python-distutils-extra 2.24 fixes this. Bump version check. - hookutils.py: Add attach_root_command_outputs() to run several commands at once. This avoids asking for the password several times. (LP: #716595) * debian/apport.postinst: Add missing debhelper token. * debian/rules: Drop dump_acpi_tables.py chmod workaround, it's upstream now and has the proper permissions. * Add etc/apport/blacklist.d/apport and drop the creation of it in /debian/rules. This is easier to maintain and more obvious. Also move README.blacklist from python-apport to apport, it fits better there. * etc/apport/blacklist.d/apport: Add the binaries of nspluginwrapper, as we can't do anything about them anyway. (LP: #717468) [ Brian Murray ] * data/package-hooks/source_linux.py: Properly set regression-release tag if the reporter chooses "I do not know". -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 16 Feb 2011 14:29:36 +0100 apport (1.17.2-0ubuntu2) natty; urgency=low * Merge from trunk: - Ensure that symptom scripts define a run() function, and don't show them if not. - Do not show symptom scripts which start with an underscore. These can be used for private libraries for the actual symptom scripts. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 07 Feb 2011 12:23:57 +0100 apport (1.17.2-0ubuntu1) natty; urgency=low * New upstream bug fix release: - Be more Python 3 compatible (not fully working with Python 3 yet, though). - apt/dpkg backend: Drop support for pre-0.7.9 python-apt API. - Add --tag option to add extra tags to reports. (LP: #572504) - hookutils.py, attach_dmesg(): Do not overwrite already existing dmesg. - hookutils.py: Be more robust against file permission errors. (LP: #444678) - ui.py: Do not show all the options in --help when invoked as *-bug. (LP: #665953) - launchpad.py: Adapt test cases to current standard_title() behaviour. * debian/control: Bump python-apt dependency to >= 0.7.9 to ensure that we have the current API. Trunk dropped support for the old API. * data/general-hooks/ubuntu.py: Ignore obsolete packages when filing bugs against update-manager. (LP: #397519) * data/general-hooks/ubuntu.py: Do not file a package install failure if DpkgTerminalLog doesn't have any data. (LP: #695887) * Add debian/apport.postinst: Create /var/crash. This directory is required for package failures even if apport is disabled and thus the upstart job does not run. (LP: #683367) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 04 Feb 2011 15:46:40 +0100 apport (1.17.1-0ubuntu3) natty; urgency=low * data/general-hooks/ubuntu.py: Add some __main__ code for easy testing, which will update a .crash file with that hook's data. * data/general-hooks/ubuntu.py: Trim DpkgTerminaLog to the most recent install session; not only is this much easier to read, but it also avoids confusing the tests further down which check for particular strings in the log. (LP: #580419) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 26 Jan 2011 11:44:00 +0100 apport (1.17.1-0ubuntu2) natty; urgency=low * Merge from trunk: - hookutils.py, attach_dmesg(): Do not overwrite already existing dmesg. * etc/default/apport: Enable Apport by default for Alpha-2. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 25 Jan 2011 07:28:48 +0100 apport (1.17.1-0ubuntu1) natty; urgency=low * New upstream release: - Make the GTK frontend work with GTK 2.0 as well, and drop "3.0" requirement. * gtk/apport-gtk: Force GTK 2 for now, as we do not currently have a real GTK 3 theme, and thus with GTK 3 the application looks very ugly. * debian/control: Depend on gir1.2-gtk-2.0 instead of -3.0. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 10 Jan 2011 22:26:10 -0600 apport (1.17-0ubuntu2) natty; urgency=low [ Brian Murray ] * data/package-hooks/source_linux.py: Prevent regression-release bugs from being tagged regression-updates. (LP: #692344). Additionally, reorder the regression tags in likelyhood of greatest usage and clarify that 'regression-release' applies to the dev release and a stable release but not an updated package in the stable release. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 05 Jan 2011 09:47:38 +0100 apport (1.17-0ubuntu1) natty; urgency=low * New upstream release: - Better standard bug titles for Python crashes. Thanks Matt Zimmerman! (LP: #681574) - Add handler for uncaught Java exceptions. There is no integration for automatically intercepting all Java crashes yet, see java/README. Thanks Matt Zimmerman! (LP: #548877) - GTK frontend: Require GTK 3.0. - launchpad.py: Default to "production" instance, not "edge", since edge is obsolete now. - hookutils.py, attach_alsa(): Fix crash if /proc/asound/cards does not exist. (LP: #626215) - ui.py, format_filesize(): Fix to work with stricter locale.format() in Python 2.7. (LP: #688535). While we are at it, also change it to use base-10 units. - hookutils.py, package_versions(): Always include all requested package names even if they're unknown to us. Thanks Matt Zimmerman! (LP: #695188) - launchpad.py: When updating a bug, also add new tags. Thanks Brian Murray! * debian/apport.install: Install Java crash handler in /usr/share/apport/apport.jar. * debian/control: Add Java build dependency so that the Java crash handler will be built. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 31 Dec 2010 16:15:06 +0100 apport (1.16-0ubuntu5) natty; urgency=low * data/general-hooks/ubuntu.py: Add tag "running-unity" if Unity is running. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 18 Dec 2010 20:50:20 +0100 apport (1.16-0ubuntu4) natty; urgency=low * Restore the python2.7 fix which was not in the vcs and dropped. -- Sebastien Bacher <seb128@ubuntu.com> Thu, 16 Dec 2010 23:40:12 +0100 apport (1.16-0ubuntu3) natty; urgency=low * debian/control: - Update Depends for gir abi change -- Michael Terry <mterry@ubuntu.com> Thu, 16 Dec 2010 13:49:57 -0500 apport (1.16-0ubuntu2) natty; urgency=low * Cherrypick from trunk: - ui.py, format_filesize(): Fix to work with stricter locale.format() in Python 2.7. (LP: #688535). While we are at it, also change it to use base-10 units. * debian/rules: Fix python version check to also work with 2.7. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 14 Dec 2010 12:23:31 +0100 apport (1.16-0ubuntu1) natty; urgency=low * New upstream release: - Port GTK frontend from pygtk2 to GTK+3.0 and gobject-introspection. - Fix symptoms again. Version 1.15 broke the default symptom directory. - Fix memory test case to work with current Python versions, where the SQLite integrity check throws a different exception. * debian/control: Replace python-gtk2 dependency with python-gobject and gir1.0-gtk-3.0. * debian/control: Drop obsolete Conflicts/Replaces. * debian/control: Consistently wrap dependencies. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 19 Nov 2010 11:43:08 +0100 apport (1.15-0ubuntu1) natty; urgency=low [ Martin Pitt ] * New upstream release. Changes since to our previous trunk snapshot: - Order symptom descriptions alphabetically. Thanks to Javier Collado. - Check $APPORT_SYMPTOMS_DIR environment variable for overriding the system default path. Thanks to Javier Collado. - testsuite: Check that crashdb.conf can have dynamic code to determine DB names and options. - ui.py test suite: Rewrite _gen_test_crash() to have the test process core dump itself, instead of using gdb to do it. The latter fails in ptrace restricted environments, such as Ubuntu 10.10. - launchpad.py: Use launchpadlib to file a bug instead of screen scraping. The latter was completely broken with current Launchpad, so this makes the test suite actually work again. Thanks to Diogo Matsubara! - launchpad.py: Change $APPORT_STAGING to $APPORT_LAUNCHPAD_INSTANCE, so that you can now specify "staging", "edge", or "dev" (for a local http://launchpad.dev installation). Thanks to Diogo Matsubara! - backends/packaging-apt-dpkg.py: Fix crash on empty lines in ProcMaps attachment. - doc/symptoms.txt: Fix typo, thanks Philip Muskovac. (LP: #590521) - apport/hookutils.py: rename ProcCmdLine to ProcKernelCmdLine to not wipe wipe out /proc/$pid/cmdline information. (LP: #657091) - apport/hookutils.py: attach_file() will not overwrite existing report keys, instead appending "_" until the key is unique. - Fix --save option to recognise ~, thanks Philip Muškovac. (LP: #657278) - Remove escalation_subscription from Ubuntu bug DB definition, turned out to not be useful; thanks Brian Murray. - launchpad.py: Fix APPORT_LAUNCHPAD_INSTANCE values with a https:// prefix. - apt backend: Opportunistically try to install a -dbg package in addition to -dbgsym, to increase the chance that at least one of it exists. Thanks Daniel J Blueman! * debian/control: Switch Vcs-Bzr: to natty branch. [ Brian Murray ] * data/package-hooks/source_linux.py: Drop regression-potential tag. We are moving away from using regression-potential as a tag in the management of regression bug reports. Instead we will tag bugs regression-release and then create series, release, tasks for the release affected if the bug is in fact a regression. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 12 Nov 2010 14:59:01 +0100 apport (1.14.1-0ubuntu8) maverick; urgency=low * debian/local/ubuntu-fat-chroot: Divert gio-querymodules and gdk-pixbuf-query-loaders, since they keep breaking the chroots. * etc/default/apport: Disable Apport for final Maverick release. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 28 Sep 2010 09:31:59 +0200 apport (1.14.1-0ubuntu7) maverick; urgency=low * In kde/apport-kde use correct translation catalogue, LP: #633483 -- Jonathan Riddell <jriddell@ubuntu.com> Wed, 08 Sep 2010 20:53:13 +0100 apport (1.14.1-0ubuntu6) maverick; urgency=low * backends/packaging-apt-dpkg.py: fix handling of /etc/apport/native-origins.d to actually work. LP: #627777. -- Steve Langasek <steve.langasek@ubuntu.com> Thu, 02 Sep 2010 22:28:48 +0000 apport (1.14.1-0ubuntu5) maverick; urgency=low * debian/control: Update Vcs-Bzr: to point to maverick branch. * data/package-hooks/source_linux.py: Update to new-style kernel tags. Patch by Brad Figg. * debian/control: Bump Standards-Version to 3.9.1, no changes necessary. * debian/compat: Bump to 7, since we are build depending on debhelper > 7.3 anyway. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 25 Aug 2010 13:02:46 +0200 apport (1.14.1-0ubuntu4) maverick; urgency=low * debian/local/ubuntu-fat-chroot: Drop firefox and thunderbird, we will use upstream crash reporting for those now. * debian/rules: Make dump_acpi_tables.py executable. This is a workaround as long as the script comes through the package diff.gz. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 21 Jul 2010 08:43:32 +0200 apport (1.14.1-0ubuntu3) maverick; urgency=low * Merge from trunk: - Add dump_acpi_tables.py script. This can be called by package hooks which need ACPI table information (in particular, kernel bug reports). Thanks to Brad Figg for the script! - Fix test suite to work under ptrace restricted kernel. * data/package-hooks/source_linux.py: Call dump_acpi_tables.py and save output into "AcpiTables" field. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 13 Jul 2010 08:14:10 +0200 apport (1.14.1-0ubuntu2) maverick; urgency=low * etc/apport/crashdb.conf: Add a new database "canonical-oem" which checks for an Ubuntu Distribution Channel Descriptor (in /var/lib/ubuntu_dist_channel), and parses out the OEM project name from that. Now that we modify the file anyway, remove the Fedora stanza, which is not relevant for Ubuntu and not working due to a nonexisting Bugzilla backend. * data/general-hooks/ubuntu.py: Report bug against the OEM project instead of Ubuntu if we have a DCD and an OEM specific package version. * etc/default/apport: Re-enable Apport by default for Maverick. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 05 Jul 2010 10:53:10 +0200 apport (1.14.1-0ubuntu1) maverick; urgency=low * New upstream bug fix release: - hookutils.py, attach_drm_info(): Sanitize connector names. Thanks Chris Halse Rogers. (LP: #597558) - bash completion: Complete all path names, apport-bug can be invoked with a path to a program. Thanks Philip Muskovac. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 24 Jun 2010 15:37:19 +0200 apport (1.14-0ubuntu1) maverick; urgency=low * New upstream release: - hookutils.py: Add new method attach_drm_info() to read and format /sys/class/drm/*. (desktop-maverick-xorg-gpu-freeze-reports) - packaging-apt-dpkg.py: Fix deprecated python-apt variables, thanks David Stansby. (LP: #591695) - launchpad.py: Fix crash on attachments which are named *.gz, but uncompressed. (LP: #574360) - hookutils.py, attach_gconf(): Fix defaults parsing for boolean keys. (LP: #583109) * debian/control: Bump p-distutils-extra build-dependency to 2.19, to ensure that we get a complete translation template. (LP: #533565) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 16 Jun 2010 15:50:55 +0200 apport (1.13.4-0ubuntu1) maverick; urgency=low * New upstream bug fix release: - bash completion: Fix error message if /usr/share/apport/symptoms does not exist. Thanks Philip Muškovac! (LP: #562118) - general-hooks/parse_segv.py: Report stack exhaustion more clearly and correctly handle register dereferencing calls. - Save/restore environment when calling hooks, in case they change the locale, etc. (LP: #564422) - hookutils.py, command_output(): Do not set $LC_MESSAGES for the calling process/hook, just for the command to be called. - ui.py: When displaying strings from system exceptions, decode them into an unicode string, to avoid crashing the KDE UI. (LP: #567253) - apport-retrace: Fix crash for retracing kernel vmcores, which do not have an ExecutablePath. - apport-bug manpage: Clarify when apport-collect may be used. Thanks Brian Murray! (LP: #537273) - generic hook: Check ProcMaps for unpackaged libraries, and ask the user if he really wants to continue. If he does, tag the report as "local-libs" and add a "LocalLibraries" field to the report with a list of them. (LP: #545227) * debian/control: Drop the now obsolete apport-qt transitional package. * debian/control: We do not need python-dev, just python-all. * Add debian/source/format: We keep 1.0, since 3.0 is a pain for bzr-maintained packages. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 08 May 2010 09:00:26 +0200 apport (1.13.3-0ubuntu2) lucid; urgency=low * etc/default/apport: Disable Apport for the final release. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Apr 2010 10:33:43 +0200 apport (1.13.3-0ubuntu1) lucid; urgency=low * New upstream bug fix release: - data/general-hooks/parse_segv.py: suggest segv-in-kernel possibility. - ui.py: When running as root, only show system crash reports, to avoid restarting user programs as root. (LP: #445017) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 14 Apr 2010 14:42:28 +0200 apport (1.13.2-0ubuntu1) lucid; urgency=low [ Martin Pitt ] * New upstream bug fix release: - packaging-apt-dpkg.py, _install_debug_kernel(): Do not crash on an outdated kernel, just return that it is outdated. (LP: #532923) - launchpad.py test suite: Add "Referer" HTTP header, now required by launchpad. - launchpad.py: Fix crash if configuration does not have an "escalated_tag" option. - launchpad.py: Port to launchpadlib 1.0 API, thanks Michael Bienia for the initial patch! (LP: #545009) - gtk/apport-gtk-mime.desktop.in, kde/apport-kde-mime.desktop.in: Change categories so that these do not ever appear in menu editors. (LP: #449215) - launchpad.py: Some LP bugs have broken attachments (this is a bug in Launchpad itself). Ignore those instead of crashing. - apport-gtk: Turn http:// and https:// links into clickable hyperlinks in information and error dialogs. (LP: #516323) - apport-retrace: Fix crash when trying to rebuild package info for reports without an ExecutablePath. (LP: #436157) - ui.py: Fix crash when package information cannot be determined due to broken apt status. (LP: #362743) - ui.py: Fix crash when /etc/apport/crashdb.conf is damaged; print an appropriate error message instead. (LP: #528327) - data/kernel_crashdump: Fix crash if log file disappeared underneath us. (LP: #510327) - data/apport: Fix IOError when apport is called with invalid number of arguments, and stderr is not a valid fd. (LP: #467363) - hookutils.py: Factor out the DMI collection code from attach_hardware() into attach_dmi(), and call that in attach_alsa() as well. Thanks to Brad Figg for the patch! (LP: #552091) - apport/ui.py: Fix the help output if Apport is invoked under an alternative name (like apport-collect). (LP: #539427) * debian/local/apport-chroot: Fix crash if $APPORT_CRASHDB_CONF is not set. (LP: #487700) * debian/control: Bump python-launchpadlib dependency, to ensure that we have a current version (LP: #407091), and the "1.0" protocol available. * data/package-hooks/source_linux.py: Drop _() i18n, it's not available in the hook and causes crashes. (LP: #538368) [ Leann Ogasawara ] * data/package-hooks/source_linux.py: - Clean up some of the wording in the information dialogs for the interactive kernel hook. Also add an additional "I don't know" option when asked how frequently an issue occurs. (LP: #534638) - Autodetect if running an upstream kernel. (LP: #532932) - Attempt to categorize issue. Then add tag based on category. (LP: #534745) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 31 Mar 2010 16:32:39 +0200 apport (1.13.1-0ubuntu2) lucid; urgency=low * Merge bug fixes from trunk: - problem_report.py, write_mime(): Add new optional argument "priority_fields" for ordering report keys. Patch by Brian Murray, thanks! - launchpad.py: Put some interesting fields first in the report, with the new priority_fields argument. Patch by Brian Murray, thanks! - packaging-apt-dpkg.py, _install_debug_kernel(): Do not crash on an outdated kernel, just return that it is outdated. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 27 Mar 2010 11:48:34 +0100 apport (1.13.1-0ubuntu1) lucid; urgency=low [ Martin Pitt ] * New upstream bug fix release: - Update parse-segv to handle gdb 7.1 output. - Enhance test suite to work with gdb 7.1 as well, and catch future outputs. - UI: Add exception string to the "network error" dialog, to better tell what the problem is. - UI: Add back -p option to apport-collect/apport-update-bug (regression from 1.13). (LP: #538944) - launchpad.py: Add yet another workaround for LP#336866. (LP: #516381) - launchpad.py, download(): Ignore attachments with invalid key names. - Fix regression from 1.10 which made it impossible for a package hook to set a third-party crash database for non-native packages. (LP: #517272) - apport-cli: Create the 'details' string only if user wants to view details, and do not show files larger than 1MB. Thanks Scott Moser! (LP: #486122) - packaging-apt-dpkg.py: Silence apt.Cache() spewage to stdout with newer python-apt versions. (LP: #531518) - unkillable_shutdown: Add list of running processes and blacklisted pids to report. (LP: #537262) - Sort the report by key in the details view. (LP: #519416) [ Evan Dandrea ] * Move ubiquity's package-hook into apport, so that it can be used from the installed system to grab the logs in /var/log/installer. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 20 Mar 2010 22:28:44 +0100 apport (1.13-0ubuntu3) lucid; urgency=low * Merge fixes from trunk: - Update parse-segv to handle gdb 7.1 output. - Enhance test suite to work with gdb 7.1 as well, and catch future outputs. - unkillable_shutdown: Add list of running processes, blacklisted pids, and "initctl list" to report. (LP: #537262) - launchpad.py: Preserve the bug title written to the description by apport as OriginalTitle for pattern matching. Thanks to Brian Murray! (LP: #511310) -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 13 Mar 2010 15:55:47 +0100 apport (1.13-0ubuntu2) lucid; urgency=low * data/general-hooks/parse_segv.py: backport portion of upstream commit 1724 to handle new Disassembly output from gdb 7.1. -- Kees Cook <kees@ubuntu.com> Thu, 11 Mar 2010 10:58:39 -0800 apport (1.13-0ubuntu1) lucid; urgency=low * New upstream release: - Add "unkillable_shutdown" script to collect information about processes which are still running after sending SIGTERM to them. This can be hooked into e. g. /etc/init.d/sendsigs on Debian/Ubuntu systems. - apport_python_hook.py: Directly check /etc/default/apport instead of querying packaging.enabled(), to avoid importing lots of modules for non-packaged scripts. Thanks Stuart Colville! (LP: #528355) - Fix SegV parser to notice walking off the stack during "call" or "ret" (LP: #531672). - Fix --help output for bug updating mode (invocation as apport-collect or apport-update-bug). (LP: #504116) - Fix bug escalation tagging, thanks to Brian Murray. - Fix option processing when being invoked as apport-bug. Thanks to Daniel Hahler for the patch! (LP: #532944) * debian/apport.install: Install unkillable_shutdown. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 11 Mar 2010 08:42:05 +0100 apport (1.12.1-0ubuntu5) lucid; urgency=low * launchpad.py: Do not escalate a bug if its already been escalated and dealt with. -- Brian Murray <brian@ubuntu.com> Fri, 05 Mar 2010 13:05:10 -0800 apport (1.12.1-0ubuntu4) lucid; urgency=low [ Leann Ogasawara ] * data/package-hooks/source_linux.py: When reporting a kernel oops the reporter is presented with a dialog asking if they also want to report the oops to kerneloops.org. Unfortunately there is no information regarding the oops at the time this dialog is presented. Provide the reporter a summary of the oops in question so they can make an educated decision about reporting it to kerneloops.org. (LP: #528175) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 04 Mar 2010 13:08:22 +0100 apport (1.12.1-0ubuntu3) lucid; urgency=low * data/general-hooks/parse_segv.py: add "call" and "ret" to list of insns that check the stack pointer for VMA sanity (LP: #531672), backport of upstream commit 1715. -- Kees Cook <kees@ubuntu.com> Wed, 03 Mar 2010 18:07:46 -0800 apport (1.12.1-0ubuntu2) lucid; urgency=low [ Leann Ogasawara ] * data/package-hooks/source_linux.py: Prevent filing bugs against linux-meta. Use the linux package instead. (LP: #526787) [ Scott Moser ] * data/general-hooks/ubuntu.py: Update "is ec2 instance" logic for lucid uec images. (LP: #525003) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 25 Feb 2010 19:06:39 +0100 apport (1.12.1-0ubuntu1) lucid; urgency=low [ Martin Pitt ] * New upstream bug fix release: - launchpad.py: Do not keep escalating bugs, just escalate at the 10th duplicate. - Improve error message if a symptom script did not determine a package name. (LP: #503834) - general-hooks/generic.py: Fix crash on libGL check with empty StacktraceTop. - Review and clean up usage of chmod(). This fixes a small race condition in the Python exception hook where a local attacker could read the information from another user's crash report. (LP: #516029) - hookutils, package_versions(): Ignore "None" packages, for more robust package hooks. (LP: #518295) * debian/apport.install: Actually install the bash completion file. (LP: #218933) * Bump Standards-Version to 3.8.4 (no changes necessary). [ Leann Ogasawara ] * source_linux.py: Tag kernel bugs which utilize a driver from staging. Also provide the list of staging drivers in use. Prefix suspend/resume bug titles with "[STAGING]" if a staging driver was being used. (LP: #524174, #524167) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 22 Feb 2010 21:58:16 +0100 apport (1.12-0ubuntu5) lucid; urgency=low * Add a dh_apport debhelper program, and a sequence addon making it possible to use 'dh --with apport'. -- Colin Watson <cjwatson@ubuntu.com> Wed, 10 Feb 2010 18:12:30 +0100 apport (1.12-0ubuntu4) lucid; urgency=low [ Martin Pitt ] * Add X-Ubuntu-Gettext-Domain: to desktop files, thanks Sebastien Bacher for spotting this. [ Jonathan Thomas ] * Make apport-kde recommend the new kubuntu-notification-helper package rather than update-notifier-kde to prevent the latter, depreciated tool from getting on the Live CD -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 01 Feb 2010 07:40:11 -0800 apport (1.12-0ubuntu3) lucid; urgency=low * data/general-hooks/ubuntu.py: also attach byte compilation logs for xemacs21 -- Reinhard Tartler <siretart@tauware.de> Sun, 24 Jan 2010 19:51:04 +0100 apport (1.12-0ubuntu2) lucid; urgency=low * launchpad.py: Do not keep escalating bugs, just escalate at the 10th duplicate. (Merged from trunk) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 22 Jan 2010 16:51:35 +0100 apport (1.12-0ubuntu1) lucid; urgency=low * New upstream release: - launchpad.py: Add options 'escalation_subscription' and 'escalation_tag' for handling bugs with more than 10 duplicates. - crashdb.conf: For Ubuntu, escalate bugs with >= 10 duplicates to "ubuntu-bugcontrol" and tag them with "bugpattern-needed". (LP: #487900) - general-hooks/generic.py: Filter out crashes on missing GLX (LP: #327673) - Add bash completion script. Thanks to Philip Muškovac. (LP: #218933) - launchpad.py: Drop APPORT_FILES whitelist for download() and instead just filter out file extensions that we know about (*.txt and *.gz). (LP: #444975) - launchpad.py: Do not put the Tags: field into the bug description, since they are already proper tags. In download(), convert the real tags back to the Tags: field. (LP: #505671) - test/crash: Update expected core dump flags for changed rlimit behaviour in Linux 2.6.32. - launchpad.py: Fix marking of 'checked for duplicate' for bugs with upstream tasks. - launchpad.py, get_fixed_version(): Do not consider a bug as invalid just because it has any invalid distro package task. * debian/local/setup-apport-retracer: Switch to lucid. * debian/local/setup-apport-retracer: Do not locally install python-apt and friends, users can run apt-get install in DC dchroots now. * debian/local/setup-apport-retracer: Don't add the retracer PPA for now, everything we need is in lucid. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 20 Jan 2010 13:51:15 +0100 apport (1.11-0ubuntu5) lucid; urgency=low * ubuntu.py: Avoid errors when running on ramdiskless EC2 images, by only attaching available EC2 information. Patch from Scott Moser (LP: #494615) -- Thierry Carrez <thierry.carrez@ubuntu.com> Tue, 12 Jan 2010 12:19:32 +0100 apport (1.11-0ubuntu4) lucid; urgency=low * Merge from trunk: - launchpad.py: Add options 'escalation_subscription' and 'escalation_tag' for handling bugs with more than 10 duplicates. - crashdb.conf: For Ubuntu, escalate bugs with >= 10 duplicates to "ubuntu-bugcontrol" and tag them with "bugpattern-needed". (LP: #487900) - launchpad.py: Drop APPORT_FILES whitelist for download() and instead just filter out file extensions that we know about (*.txt and *.gz). (LP: #444975) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 11 Jan 2010 23:53:10 +0100 apport (1.11-0ubuntu3) lucid; urgency=low * Attach emacs compilation logs in order to assist bug triaging. LP: #413110 -- Reinhard Tartler <siretart@tauware.de> Thu, 07 Jan 2010 22:14:45 +0100 apport (1.11-0ubuntu2) lucid; urgency=low * launchpad.py: Remove a snippet of redundant code. * Merge bug fixes from trunk: - launchpad.py: Drop APPORT_FILES whitelist for download() and instead just filter out file extensions that we know about (*.txt and *.gz). (LP: #444975) * Enable Apport by default again. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 05 Jan 2010 18:30:19 +0100 apport (1.11-0ubuntu1) lucid; urgency=low * New upstream release: - Add "--save" UI option to store the collected information into an .apport file instead of sending it right away. The file can then later be sent through apport-bug. Update manpages accordingly. - Update all copyright and description headers and consistently format them. - Rename all TestCase classes to "_T", which makes it much easier to run individual tests from the command line. - Testsuite: Verify that report details are/are not shown. This uncovered that details about package installation failures were not shown before sending them, which is fixed now. - test/hooks: Do not try to add hook information to kernel_crashdump test case, since we do not have an UI here. This test case broke when the system had an interactive package hook for the kernel. - When reporting a bug from a saved .apport file, let the user review/confirm the content before sending. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 23 Dec 2009 13:09:55 +0100 apport (1.10.1-0ubuntu1) lucid; urgency=low * New upstream release: - Install apport-collect symlink. - Update translations from Launchpad. - Move all remaining option/argument parsing from apport-bug into ui.py. This allows the user to add options to apport-bug/apport-collect, and also avoids unwieldy dissection of options/arguments in shell. * debian/apport.links: Do not create apport-collect symlink, now done by upstream build system. Install that in debian/apport.install. * debian/local/setup-apport-retracer: Set up lazr.restfulclient. * debian/control: Bump python-distutils-extra build dependency to >= 2.14 to ensure correct symlink handling. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 23 Dec 2009 00:54:37 +0100 apport (1.10-0ubuntu1) lucid; urgency=low * New upstream release: - Add a mode for updating an existing problem report to ui.py (-u/--update). This is similar to the Ubuntu specific "apport-collect" tool, but implemented the right way now: In particular, this has access to the UI and thus can use interactive hooks (LP: #385811) and show you what is being sent for confirmation/cancelling (LP: #371827) - apport-bug: If invoked as "apport-collect" or "apport-update-bug" (i. e. through a symlink), run apport in update mode (-u <number>). This provides a convenient no-options command line program. Please note that setup.py does not currently install such a symlink. Update the apport-bug manpage accordingly. - launchpad.py: Use new login_with() to clean up code, and specify allowed access levels (WRITE_PRIVATE is the only sensible one anyway). (LP: #410205) - New hookutils functions: + xsession_errors (match lines from ~/.xsession-errors) + shared_libraries (determine which libraries a binary links with) + links_with_shared_library (test if a binary links with a particular library) - New CrashDatabase API: get_affected_packages(), can_update(), is_reporter() - Rename CrashDatabase.update() to update_traces(). - Add CrashDatabase.update() for adding all new fields of a report. This is primarily useful for collecting local standard and package hook data for an already existing bug report which was not filed through Apport. This checks can_update()/is_reporter() if the user is eligible for updating that particular bug. (LP: #485880) - Ignore SIGXCPU and SIGXFSZ; thanks to Kees Cook. (LP: #498074) - launchpad.py: Do not mark non-Ubuntu bugs as needs-retrace, since there is no retracer right now. (LP: #489794) - packaging-apt-dpkg.py, install_retracing_packages(): Do not crash on malformed Dependencies.txt lines. (LP: #441709) - use-local: Fix for new source tree location of "apport" binary. * Drop debian/local/apport-collect{,.1} and install symlinks for apport-bug instead. * data/general-hooks/ubuntu.py: Do not report "corrupted filesystem tarfile" package errors. (LP: #320743) * data/general-hooks/ubuntu.py: Report "package ... is already installed and configured" errors against dpkg, not the package that failed. (LP: #467688) -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 19 Dec 2009 16:48:48 +0100 apport (1.9.6-0ubuntu2) lucid; urgency=low * Bump python-launchpadlib dependency to ensure that we have login_with() with credentials_file argument. * debian/local/apport-collect: Add short infos to description if the calling person is the bug reporter. (LP: #348948) * debian/local/apport-collect: Intercept lazr.restfulclient.errors.HTTPError as well, and also cover the login process. * debian/local/apport-collect: Improve error messages. * debian/local/ubuntu-fat-chroot: Disable update-alternatives, it causes too much breakage with fakechroot. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 18 Dec 2009 13:09:26 +0100 apport (1.9.6-0ubuntu1) lucid; urgency=low [ Brian Murray ] * debian/local/apport-collect: Strongly encourage collectors who are not the bug reporter to file a new bug report. [ Marco Rodrigues ] * debian/control: Fix lintian warnings. Move python-distutils-extra to b-d-i and add misc:Depends to apport-qt. [ Martin Pitt ] * New upstream version 1.9.5 and 1.9.6: - apport-retrace: Fix crash if InterpreterPath/ExecutablePath do not exist. - hookutils.py, attach_alsa(): Attach /proc/cpuinfo too, for CPU flags. - Fix crash if InterpreterPath does not exist any more at the time of reporting. (LP: #428289) - apport-gtk: Connect signals properly, to repair cancel/window close buttons. (LP: #427814) - Update German translations and fix "konnre" typo. (LP: #484119) - launchpad.py: Ensure that text attachments on initial bug filing are valid UTF-8. (LP: #453203) - man/apport-retrace.1: Document -R option. - Add pm-utils hook to record current operation, so that apportcheckresume can check it. Before this was kept in Ubuntu's pm-utils package. - general-hooks/generic.py: Check if using ecryptfs, and which directory. (LP: #444656) * data/general-hooks/ubuntu.py: Add distro release codename tag. (LP: #404250) * debian/local/apport-chroot: Fix last occurrence of "--no-dpkg" to be "--no-pkg". (LP: #487056) * debian/local/apport-collect: Use "apport-collect data" as comment for the apport-collect attachments to enable bug mail filtering. Thanks to Bryce Harrington for the suggestion. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 02 Dec 2009 00:01:06 +0100 apport (1.9.4-0ubuntu1) lucid; urgency=low [ Marco Rodrigues ] * etc/default/apport: Replace the old init.d force_start command by the Upstart one. * debian/apport.upstart: If $force_start=1 is given then run the job. * debian/local/apport-collect: Don't collect information if bug is a duplicate. (LP: #471429) [ Martin Pitt ] * New upstream bug fix release: - Fix crash when ExecutablePath isn't part of a package. (LP: #424965) - hookutils.py, attach_hardware(): Anonymize disk labels. Thanks to Marco Rodrigues. (LP: #394411) - hookutils.py, attach_wifi(): Anonymize encryption key (which appeared in hex when being called as root). Thanks to Marco Rodrigues. (LP: #446299) - launchpad.py: If unset, set bug task source package also for interpreter crashes. - apport-gtk: Give details window a minimize/maximize button, which were missing in some window managers. Thanks to Marien Zwart. (LP: #447749) - apport-kde: Properly terminate program after closing the last dialog. (LP: #458662) - hookutils.py, attach_alsa(): Attach /proc/asound/version. (LP: #467233) - general-hooks/generic.py: Only collect ~/.xsession-errors bits when we have an ExecutablePath linked to libgtk. * debian/control: Update Vcs-Bzr: for lucid branch. * data/package-hooks/source_linux.py: Add interactive questionaire, thanks Leann Ogasawara! (LP: #444672) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 06 Nov 2009 14:06:52 +0100 apport (1.9.3-0ubuntu4) karmic; urgency=low * etc/default/apport: Disable Apport for final Karmic. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 22 Oct 2009 22:41:34 +0200 apport (1.9.3-0ubuntu3) karmic; urgency=low * apport/crash_db/launchpad.py: Increase the number of files available for searching with bug patterns. -- Brian Murray <brian@ubuntu.com> Sun, 18 Oct 2009 12:38:38 +0200 apport (1.9.3-0ubuntu2) karmic; urgency=low * debian/local/apport-collect: Instantiate Launchpad crash database with "distro = ubuntu", to satisfy an assertion introduced in the previous release. (LP: #451838) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 15 Oct 2009 21:12:21 +0200 apport (1.9.3-0ubuntu1) karmic; urgency=low * New upstream bug fix release: - hookutils.py: Fix error codes from "comm", thanks to Brian Murray. (LP: #414194) - general-hooks/generic.py: Catch xkbcomp error messages. (LP: #431807) - launchpad.py: Assert that we have exactly one of "distro" or "project" option. - doc/crashdb-conf.txt: Improve documentation of crash database options. - apport-gtk: Make Cancel/Send buttons focusable. Thanks to Marco Rodrigues. (LP: #447780) - Drop handling of the APPORT_REPORT_THIRDPARTY environment variable and "thirdparty" configuration file option. This has never been documented, and conceptually does not work. There is a proper mechanism for this in place now, e. g. launchpad.py's "project" option. * bin/apport-bug: Show deprecation warning for -p/-P. (LP: #431942) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 14 Oct 2009 23:28:24 +0200 apport (1.9.2-0ubuntu2) karmic; urgency=low [ Matt Zimmerman ] * general-hooks/ubuntu.py: Include in Ubuntu bug reports the version number of the installation media used to install the system, via /var/log/installer/media-info (cf. #364649) [ Martin Pitt ] * debian/local/apport-collect.1: Clarify that the launchpad.credentials files needs to be removed in order to ask for privileges again. * Merge bug fixes from trunk: - general-hooks/generic.py: Catch xkbcomp error messages, too. (LP: #431807) - apport-bug: Consider -h as "output help", too. (Marco Rodrigues) [ Brian Murray ] * debian/local/apport-collect: - Resolve bug with specifying package for adding information. - Let collector know if bug was not reported by them. - Clarify potential failure causes. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 08 Oct 2009 09:37:35 +0200 apport (1.9.2-0ubuntu1) karmic; urgency=low * New upstream bug fix release: - apport-cli: Print the URL and ask whether to open a browser. In many situations (such as usage on a server through ssh), it's preferable to not open the browser on the reporting computer. Thanks to Matt Zimmerman for the initial patch! (LP: #286415) - general-hooks/generic.py: Collect important glib errors/assertions (which should not have private data) from ~/.xsession-errors (LP: #431807) - launchpad.py: Link hardware data submission key if it exists. (LP: #424382) - apport-cli: Fix crash with non-ASCII characters in prompts. - Fix "apport-bug symptomname" to actually work. - launchpad.py: Fix crash on invalid credentials file. Thanks to Marco Rodrigues for the initial patch! (LP: #414055) * man/apport-bug.1: Document APPORT_IGNORE_OBSOLETE_PACKAGES (cherrypicked from trunk), and APPORT_STAGING (Ubuntu specific change, since it's a launchpad backend specific variable). * bin/apport-bug: Ignore -p option when giving two arguments, to keep compatibility with current bug filing instructions. (LP: #356755) * debian/copyright: Update copyright year and fix GPL link, thanks Marco Rodrigues! -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 02 Oct 2009 13:25:58 +0200 apport (1.9.1-0ubuntu3) karmic; urgency=low * Merge bug fixes from trunk: - apport-cli: Print the URL and ask whether to open a browser. This makes ubuntu-bug work much better for servers, now that ubuntu-bug is by and large mandatory. (LP: #286415) - launchpad.py: Consistently respect $APPORT_STAGING, so that it works for bug filing as well. (LP: #435112) [ Matt Zimmerman ] * data/general-hooks/ubuntu.py: Add metadata and tags for bugs reported from EC2 and UEC instances. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 25 Sep 2009 18:51:44 +0200 apport (1.9.1-0ubuntu2) karmic; urgency=low * kde/bugreport.ui: Select "complete report" option by default, to actually be able to file bugs if the options are not shown. Thanks to Yuriy Kozlov! Fix cherrypicked from trunk. (LP: #405378) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 23 Sep 2009 10:18:28 +0200 apport (1.9.1-0ubuntu1) karmic; urgency=low [ Martin Pitt ] * New upstream bug fix release: - hookutils.py, attach_hardware(): Do not attach empty Pccardctl*. - apport/report.py, add_gdb_info(): Do not throw away stderr from gdb. - data/general-hooks/parse_segv.py: + Handle arithmetic wrapping correctly. + Handle empty base, scale, or index registers in disassembly. + Handle in/out ioport faults. - Various improvements to user-visible strings, thanks to Marco Rodrigues! (LP: #178507) - Various apport-retrace robustifications. - setup.py: Fix DistUtilsExtra version check. (LP: #428337) - hookutils.py, attach_gconf(): Do not overwrite previous values from other packages, thanks Loïc Minier! - hookutils.py, attach_gconf(): Fix crash with nonexisting <applyto> tags. [ Loïc Minier ] * Upstream source is at https://launchpad.net/apport/+download not archive.ubuntu.com. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 22 Sep 2009 12:51:38 +0200 apport (1.9-0ubuntu6) karmic; urgency=low * debian/apport.upstart: - Use "exit" in Upstart script rather than "return". - Fix post-stop script to write to the correct file. LP: #430895. -- Scott James Remnant <scott@ubuntu.com> Wed, 16 Sep 2009 20:33:49 +0100 apport (1.9-0ubuntu5) karmic; urgency=low * Merge bug fixes from trunk: - hookutils.py, attach_hardware(): Do not attach empty Pccardctl*. - apport/ui.py: Show a better message when failed connection to crash database. Thanks to Marco Rodrigues! (LP: #178507) - Do not throw away stderr from gdb. - data/general-hooks/parse_segv.py: Handle arithmetic wrapping correctly. - backends/packaging-apt-dpkg.py: More robust of missing ExecutablePath due to outdated packages. - setup.py: Fix DistUtilsExtra version check. (LP: #428337) * data/general-hooks/ubuntu.py: Add distribution channel descriptor, as per https://wiki.ubuntu.com/FoundationsTeam/Specs/OemTrackingId . * data/general-hooks/ubuntu.py: Do not allow users to file bugs against upgrade-system if the package isn't actually installed. Way too many upgrade failures get wrongly reported against this. (LP: #404727) * debian/rules: Entirely drop obsolete dh_installinit call. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 15 Sep 2009 17:31:26 +0200 apport (1.9-0ubuntu4) karmic; urgency=low FFE LP: #427356. * Replace init script with Upstart job. * debian/control: - Bump build-dependency on debhelper for Upstart-aware dh_installinit -- Scott James Remnant <scott@ubuntu.com> Tue, 15 Sep 2009 03:33:57 +0100 apport (1.9-0ubuntu3) karmic; urgency=low * apport/report.py: add upstream bzr commit 1591: - include stderr in gdb command output -- Kees Cook <kees@ubuntu.com> Wed, 09 Sep 2009 19:32:05 -0700 apport (1.9-0ubuntu2) karmic; urgency=low * Add missing python-apt build dependency. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 08 Sep 2009 17:41:04 +0200 apport (1.9-0ubuntu1) karmic; urgency=low * New upstream release: - Add "do what I mean" mode to command line argument parsing (applies to all interfaces: -cli, -gtk, -kde). When giving a single argument and no options, determine the most likely mode, like reporting a bug against a symptom, package, executable name, or PID. - Add program "apport-bug" which determines the most appropriate user interface (GTK, KDE, CLI) and files a bug through it, using the single argument "do what I mean" mode. This is an improved version of Ubuntu's "ubuntu-bug" script. - Update apport-cli manpage to current set of options and behaviour. Also point out that apport-gtk and apport-kde share the same CLI. - setup.py now installs apport-{gtk,kde} into $prefix/share/apport/, they are not supposed to be called directly. This also reflects the path which the .desktop files expect. - setup.py now installs the internal helper scripts like "kernel_crashdump", "apport", or "apportcheckresume" into $prefix/share/apport instead of $prefix/bin. - Update usage of gettext to work around Python bug of gettext() not returning unicodes, but str. Fixes UnicodeDecodeErrors on translated --help output. - Add missing gettext wrapping for user-visible strings in apport-{retrace,unpack} and ui.py; thanks to Marco Rodrigues! - backends/packaging-apt-dpkg.py: Robustify get_{source,architecture} for uninstalled packages - ui.py: Add --version option. Thanks Marco Rodrigues! (LP: #383694) * debian/local/apport-collect: Fix KeyError crash on nonexisting LP bug number. Thanks Marco Rodrigues! (LP: #424273) * debian/control: Bump Standards-Version to 3.8.3 (no changes necessary). * debian/local/apport-collect: Point out that you need to select "Change anything" privileges. (LP: #373700) * debian/control: Drop obsolete texlive-latex-recommended build dependency. * debian/rules: Drop --install-scripts, upstream now installs the files and binaries into the right place. Adapt debian/*.install accordingly. * Drop debian/local/ubuntu-bug{,.1} and replace them with symlinks to apport-bug{,.1}, which is a more robust version of ubuntu-bug. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 08 Sep 2009 15:53:33 +0200 apport (1.8.2-0ubuntu1) karmic; urgency=low [ Martin Pitt ] * New upstream bug fix release: - crashdb.py: Fix handling of non-ASCII crash signatures - packaging-apt-dpkg.py: Run ExecutablePath/InterpreterPath check later, so that it does not always have to be done - crashdb.py: Never mark a bug as a duplicate of itself. - launchpad.py, close_duplicate(): Add duplicate assertion - Update Ubuntu bug pattern URL - launchpad.py: Add "cache_dir" option and $APPORT_LAUNCHPAD_CACHE environment variable to specify a non-temporary cache directory. (LP: #416804) - packaging-apt-dpkg.py, get_architecture(): Only use installed architecture if package is actually installed - launchpad.py: Drop explicit temporary cache dir, launchpadlib does that automatically now. Thanks to Marco Rodriguez! [ Marco Rodrigues ] * debian/local/setup-apport-retracer: Switch to karmic. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 05 Sep 2009 13:04:16 +0200 apport (1.8.1-0ubuntu1) karmic; urgency=low * New upstream bug fix release: - data/general-hooks/generic.py: Check $HOME, not /home for enough space. (LP: #422658) - launchpad.py: Intercept httplib2.ServerNotFoundError as well, to avoid crashes when being offline. (LP: #396276) - apport-cli: Save reports with .apport extension instead of .txt. Thanks to Steve Beattie! (LP: #401983) - fileutils.py, likely_packaged(): Ignored crashes in /var, packages don't ship executables there, and it creates false positives. (LP: #414368) - packaging-apt-dpkg.py, get_modified_files(): Fix crash with empty lines. (LP: #408280) - packaging-apt-dpkg.py: Use installed version instead of candidate version where appropriate. This also fixes a crash where an obsolete package is not available any more. (LP: #423511) - hookutils.py, attach_gconf(): Fix crash with keys which do not have a schema default. (LP: #422277) - launchpad.py: Remove LP #353805 workaround, seems fixed now. - launchpad.py: Talk to staging if $APPORT_STAGING is set. - launchpad.py: Explicitly supply content_type for addAttachment, current wadllib requires it now. - apport_python_hook.py: Paper over inexplicable import error. (LP: #348250) - apport_python_hook.py: Protect against nonexisting sys.argv. (LP: #418051) - apport/ui.py, load_report(): Check that report has ProblemType field. (LP: #198543) - ui.py: Fix handling of complete vs. reduced report size. (LP: #92653). This also fixes a race condition crash with os.path.getsize(). (LP: #348137) - fi.po: Fix mistranslation of "&Cancel". (LP: #355303) - apport-{gtk,kde}: Check for having $DISPLAY at startup to avoid crashes. (LP: #411276) - report.py, add_gdb_info(): Fix race condition in unlink_core, thanks to Tommi Komulainen! (LP: #397945) - ui.py, load_report(): Robustify check whether program is still installed. (LP: #329184) - packaging-apt-dpkg.py, install_retracing_packages(): Install package for ExecutablePath/InterpreterPath if missing; this can happen with package hooks which reassing package - launchpad.py: Add a comment when marking a bug as a duplicate. (LP: #418871) * Move gdb dependency from apport to GUI packages to avoid pulling in gdb on Ubuntu server. Thanks to Steve Beattie! (LP: #354172) * ubuntu-bug: Fix handling of .crash file arguments, thanks to Marco Rodrigues for pointing this out! (LP: #422881) * debian/local/apport-collect: Set content_type and description, wadllib requires them now. (LP: #423512) Also drop the ASCII reencoding workaround, this doesn't seem to be necessary any more. * apport/hookutils.py, attach_conffiles(): Fix crash with obsolete conffiles. (LP: #412132) * debian/local/apport-collect: Do not upload data if the affected package isn't installed and there is no source package hook available either. (LP: #417277) * debian/local/ubuntu-bug: Accept .apport extension, too; thanks to Steve Beattie! (LP: #401983) * debian/local/apport-collect: Drop $APPORT_STAGING check, it's done by launchpad.py itself now. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 03 Sep 2009 21:08:31 +0200 apport (1.8-0ubuntu2) karmic; urgency=low * apport/report.py: add upstream bzr 1538 commit: - change to upstream glibc's __abort_msg variable name. - filter out memory addresses when matching assert-bug duplicates. -- Kees Cook <kees@ubuntu.com> Fri, 28 Aug 2009 12:47:14 -0700 apport (1.8-0ubuntu1) karmic; urgency=low * New upstream release: - Do not generally ignore SIGABRT any more. Try to extract the assertion message from the core dump, and add it as "AssertionMessage" field. Mark reports as unreportable if they do not have an assertion message and crashed with SIGABRT. This implements UbuntuSpec:security-karmic-apport-abort. - report.py, add_hooks_info(): Add optional package/srcpackage argument. Hooks can use that to change the affected package or call hooks from different packages. - KDE frontend implementation of ui_question_userpass(), for crash databases which need to ask for credentials. - hookutils.py: New funtion attach_wifi() to add wireless network related information to reports. - Fix the test suite on current kernels; test/crash previously often failed with python segfaults, since it killed the test processes too early. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 26 Aug 2009 13:19:51 +0200 apport (1.7-0ubuntu4) karmic; urgency=low [ Colin Watson ] * data/package-hooks/source_debian-installer.py: Report Ubiquity bugs against the ubiquity source package, rather than rejecting them. [ James Westby ] * data/package-hooks/source_linux.py: submit oopses back if the user accepts. Use the new kerneloops-submit to do it. * bin/kernel_oops: kerneloops will now pass the checksum, so if it does then base the report path on that to uniquify the reports. * apport/fileutils.py: allow uid to be a string so that we can use the checksum in place of the uid. -- James Westby <james.westby@ubuntu.com> Tue, 25 Aug 2009 21:15:24 +0100 apport (1.7-0ubuntu3) karmic; urgency=low [ Colin Watson ] * data/general-hooks/ubuntu.py: File update-grub bugs on grub2 instead of grub if appropriate. * apport/hookutils.py: Add command_available method, and use it to add prtconf and pccardctl output if those commands are available. * data/package-hooks/source_debian-installer.py: New hook, providing roughly the same information as is provided by the 'report-hw' tool in installation-report. [ Matt Zimmerman ] * apport/hookutils.py: Include modem-manager syslog messages in WifiSyslog * data/general-hooks/ubuntu.py: Exclude bugs already aimed at grub2 from the update-grub test (in support of Colin's change above) * data/general-hooks/ubuntu.py: Redirect failures in /etc/kernel/*.d to the package owning the file which failed * Make sure that kernel crash dumps are marked as private in Launchpad (LP: #417059) -- Kees Cook <kees@ubuntu.com> Fri, 21 Aug 2009 11:32:06 -0700 apport (1.7-0ubuntu2) karmic; urgency=low [ Matt Zimmerman ] * data/general-hooks/ubuntu.py: Detect when a kernel upgrade failure is caused by update-grub failing, and file the bug on grub instead of linux * data/general-hooks/ubuntu.py: Detect when a kernel upgrade failure is caused by update-initramfs failing, and file the bug on initramfs-tools instead of linux * data/package-hooks/source_linux.py: Per discussion with ogasawara, attach ALSA details on kernel bug reports by default. About 9% of sampled kernel bugs are audio-related. * data/package-hooks/source_linux.py: Add linux-firmware version to kernel bug reports * apport/hookutils.py: Add attach_wifi function with wifi-related debug info * data/package-hooks/source_linux.py: Attach wifi info by default to kernel bugs [ Martin Pitt ] * Merge trunk: - report.py, add_hooks_info(): Add optional package/srcpackage argument. - Implemented ui_question_userpass [Caio Romão]. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 08 Aug 2009 12:20:39 +0200 apport (1.7-0ubuntu1) karmic; urgency=low * New upstream release: - Add support for symptoms. * debian/control: Recommend apport-symptoms. * debian/local/ubuntu-bug: When called without arguments, run in "show available symptoms" mode. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 05 Aug 2009 19:32:39 +0100 apport (1.6-0ubuntu3) karmic; urgency=low * Merge trunk: - apport-gtk: Fix ordering of choices - bin/package_hook: Fix crash for subdirectories in log dir. (LP: #332350) - doc/package-hooks.txt: Document allowed chars in report keys. - Show precise error message for damaged reports. * ubuntu-bug: Call apport-kde instead of apport-qt. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 04 Aug 2009 18:50:26 +0100 apport (1.6-0ubuntu2) karmic; urgency=low * Re-enable Apport by default, for the alpha-3 release. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 21 Jul 2009 00:44:50 +0200 apport (1.6-0ubuntu1) karmic; urgency=low * New upstream release: - Add support for kernel crashes, thanks to Michael Vogt! - apport/ui.py, run_crash(): Do not re-collect information if we already have a Dependencies field. This happens when calling apport on an already pre-processed .crash file with -c. (LP: #394497) - apport/hookutils.py, pci_devices(): Deliver all matching devices, not just the last one. (LP: #398906) - hookutils.py, _get_module_license(): Return "invalid" if modinfo fails, so that they do not count as "free". (LP: #341720) - packaging-apt-dpkg.py: Support additional custom native origins in /etc/apport/native-origins.d/ . (LP: #386052) - packaging-apt-dpkg.py: Drop PPA origin hack, launchpad behaves properly now - apport-gtk: Avoid focus stealing when being called without arguments (i. e. auto-launched). LP: #396243) - apport-kde: Use standard gettext again - Fix handling of PC lacking disassembly due to invalid memory location. * debian/local/apport-collect: Tag bugs with "apport-collected" on success. (LP: #391392) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 15 Jul 2009 18:02:59 +0200 apport (1.5-0ubuntu2) karmic; urgency=low * Merge fixes from trunk: - packaging-apt-dpkg.py: Fix install_retracing_packages() for pre-0.7.9 python-apt API. - Sort the list of dependencies so it's easier to scan (LP: #391021) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 30 Jun 2009 22:39:18 +0200 apport (1.5-0ubuntu1) karmic; urgency=low * New upstream release: - Drop all Makefiles, po/POTFILES.in, and most code from setup.py, and use DistUtilsExtras.auto which "just does the right thing" for most build system tasks. This requires python-distutils-extra >= 2.2, see https://launchpad.net/python-distutils-extra - Move all test scripts into test/, to unclutter source tree. - setup.py now auto-detects the required packaging backend if apport/packaging_impl.py is not manually installed. * debian/control: Add python-distutils-extra build dependency. * debian/rules: Drop stuff which is now properly done by the upstream build system. * Drop debian/apport.examples, preloadlib died long ago. * Adapt debian/apport-{gtk,kde}.install to new upstream build system, which now installs the .desktop files itself. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 29 Jun 2009 12:00:21 +0200 apport (1.4-0ubuntu1) karmic; urgency=low * New upstream release. Compared to our previous snapshot, this changes: - Replace Qt4 frontend with KDE frontend, thanks to Richard Johnson! - apport/ui.py, run_report_bug(): Clean up PID information collection. - gtk/apport-gtk.ui: Drop invalid icon reference. (LP: #389064) - ui.py: Do not reject non-distro package reports if report sets CrashDB (for third-party destination). (LP: #391015) - bin/kernel_crashdump: Use packaging API properly. - apport-gtk.ui: Drop erroneous translatable flag from stock buttons. - Update German translations. * debian/*: qt → kde, add transitional package for apport-qt. * Drop backends/packaging_rpm.py. We don't use it in the Ubuntu package at all, and it's still in trunk. * debian/rules: Drop some deprecated dh_* calls, cdbs's debhelper.mk has done them for a long time. * debian/control: Bump Standards-Version to 3.8.2 (no changes necessary). * debian/control: Replace URLs in descriptions with proper Homepage: field. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 26 Jun 2009 10:44:54 +0200 apport (1.3-0ubuntu2) karmic; urgency=low * debian/local/apport-collect: Pass None as HookUI object. This will crash with interactive hooks, but is a good enough immediate bandaid. (LP: #385811) * Merge fixes from trunk: - packaging-apt-dpkg.py: Add backwards compatibility code for python-apt < 0.7.9 to not break backportability. - hookutils.py, command_output(): Force LC_MESSAGES=C, to avoid translated output in bug reports. (LP: #383230) - apport-gtk.ui: Make details window resizable, and lower default size, so that it will fit on small screens. (LP: #365517) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 12 Jun 2009 12:47:59 +0200 apport (1.3-0ubuntu1) karmic; urgency=low * New upstream release. Compared to our bzr snapshot, this has: - Interactive package hooks: + Add apport.ui.HookUI class which provides GUI functionality such as yes/no questions or file dialogs to hooks. + add_info() in package hooks now can (optionally) take a second argument which is the HookUI instance. + See doc/package-hooks.txt for details. + See UbuntuSpec:desktop-karmic-symptom-based-bug-reporting - New function apport.hookutils.root_command_output() to run a command as root, through gksu/kdesudo/sudo, depending on the desktop environment. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 10 Jun 2009 16:49:13 +0200 apport (1.2.1-0ubuntu3) karmic; urgency=low * debian/control: Bump Standards-Version to 3.8.1 (no changes necessary). * debian/control: Bump debhelper dependency for dh_icons, to satisfy lintian. * general-hooks/ubuntu.py: Fix IndexError crash if report does not have a Package field. Check whether we actually have attach_conffiles() (which is not the case when running the upstream version). * Merge trunk: - launchpad.py: Fix crash for unset titles. - Add segfault analysis hook for quick segv reviews. Thanks to Kees Cook! - run-tests: Replace hardcoded Python path with dynamically detected path. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 03 Jun 2009 09:52:03 +0200 apport (1.2.1-0ubuntu2) karmic; urgency=low * debian/control: Update Vcs-Bzr: for new location (moved from project branch to package branch). * Merge bug fixes from trunk: - apport-cli: Fix report saving in "bug report" mode. (LP: #353253) - Drop "UnsupportableReason" field, it is too similar to UnreportableReason and just confusing. - ui.py: Check UnreportableReason for run_report_bug() as well. (LP: #361359) - general-hooks/generic.py: Do not report problems with low free space on / or /home. (LP: #381047) - launchpad.py: Do not overwrite report['Title']. - launchpad.py: Repair support for extra tags. - New function apport.hookutils.root_command_output() to run a command as root, through gksu/kdesudo/sudo, depending on the desktop environment. (Part of UbuntuSpec:desktop-karmic-symptom-based-bug-reporting) - launchpad.py: Fetch DpkgTerminalLog. (LP: #382589) - launchpad.py: More robust download(), fixes other part of (LP: #382589) - problem_report.py: Allow dashes and underscores in key names. Update doc/data-format.tex accordingly. (LP: #380811) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 02 Jun 2009 11:59:41 +0200 apport (1.2.1-0ubuntu1) karmic; urgency=low * New upstream release: - Moving away from deprecated APIs: + packaging-apt-dpkg.py: Use python-apt >= 0.7.9 official API and drop usage of internal symbols. + hookutils.py: Drop hal related functions and queries, replace with udev database, udev log file, and DMI information from sysfs. + gtk UI: Convert from libglade to gtk.Builder. - Bug fixes: + hookutils.py: Drop /proc/version_signature collection, it is Ubuntu specific. + apportcheckresume: Fix log collection from pm-utils. + Fix various crashes and report properties for reporting against uninstalled packages. * debian/control: Drop python-glade2 dependency, bump python-gtk2 dependency to ensure availability of gtk.Builder. * hookutils, attach_conffiles(): Remove leftover debugging spew. * debian/apport-qt.install: Install the individual Qt .ui files instead of *.ui, since GTK's are now also called *.ui. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 15 May 2009 11:28:34 +0200 apport (1.1.1-0ubuntu2) karmic; urgency=low [ Martin Pitt ] * hookutils.py: Do not attach /proc/version_signature, it's Ubuntu specific. (Merged from trunk). Instead, attach it in general-hooks/ubuntu.py. * general-hooks/ubuntu.py: Attach package conffile information. * debian/local/apport-collect: Add workaround for launchpadlib bug LP#353805, to avoid crashing with non-UTF8 attachments. (LP: #368004) * debian/local/apport-collect: Fix import of launchpadlib's HTTPError. * apport/hookutils.py, attach_conffiles(): Ignore empty lines from dpkg-query output. * general-hooks/ubuntu.py: Strip off '/target' prefix from ExecutablePath and InterpreterPath, to correctly process crash reports from the live system installer. * apport/hookutils.py, attach_conffiles(): Do not use command_output(), since that causes error messages to get parsed as conffiles. Use subprocess properly. * backends/packaging-apt-dpkg.py: Replace deprecated python-apt properties with current ones (merged from trunk). Update python-apt dependency to >= 0.7.9. * packaging-apt-dpkg.py, get_modified_files(): Do not show package list file as modified if the package is not installed (merged from trunk). (LP: #364533) * backends/packaging-apt-dpkg.py, install_retracing_packages(): Fix syntax error which broke the retracers. [ Andy Whitcroft ] * bin/apportcheckresume: the suspend _and_ hibernate logs are both in pm-suspend.log. * bin/apportcheckresume: remove redunant check for file before attaching stress log. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 13 May 2009 15:22:53 +0200 apport (1.1.1-0ubuntu1) karmic; urgency=low [ Martin Pitt ] * New upstream security update: - etc/cron.daily/apport: Only attempt to remove files and symlinks, do not descend into subdirectories of /var/crash/. Doing so might be exploited by a race condition between find traversing a huge directory tree, changing an existing subdir into a symlink to e. g. /etc/, and finally getting that piped to rm. This also changes the find command to not use GNU extensions. Thanks to Stephane Chazelas for discovering this! (LP: #357024, CVE-2009-1295) - Other fixes were already cherrypicked in the previous upload. [ Matt Zimmerman ] * package-hooks/source_linux.py: Attach info for linux-restricted-modules and linux-backports-modules -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 30 Apr 2009 09:08:29 +0200 apport (1.1-0ubuntu1) karmic; urgency=low * New upstream release: - Drop some remaining distro specific pieces of code from non-backends. - Add hookutils methods for attaching relevant packages, greatly improve attach_alsa() for sound problem debugging. - Move launchpad crash database implementation from ever-breaking python-launchpad-bugs (screenscraping) to launchpadlib (official and stable Launchpad API). (LP: #353879) - Add new field Report.pid which gets set on add_proc_info() and can be used by hooks. - setup.py: Properly clean up all generated files, install missing mimetypes/text-x-apport.svg icon symlink. - Add README file. - Add translations from Launchpad. - Remove preloadlib/*; it's undermaintained, and not really useful any more these days. - Various bug fixes; most visible being the misnamed etc/default/apport.default file (which should just be etc/default/apport). * Merge some bug fixes from trunk: - launchpad.py: Send and read Date: field again, reverting r1128; it is useful after all. (LP: #349139) - report.py, add_proc_info(): Only add ProcAttrCurrent if it is not "unconfined". - ui.py: Detect invalid PIDs (such as for kernel processes) and give a friendly error message. (LP: #360608) - report.py, add_hooks_info(): Always run common hooks, and run source package hooks if we do not have a binary package name. (LP: #350131) - launchpad.py: Consider socket errors when connecting as transient, so that crash-digger doesn't stop completely on them. * Drop debian/apport.README.Debian, superseded by upstream README. * Drop debian/apport.links, done by upstream setup.py now. * debian/rules, debian/apport.preinst: Drop upgrade fix for misnamed default file again, was only necessary for intra-Jaunty upgrades. * debian/control: python-launchpad-bugs → python-launchpadlib dependencies. * debian/local/apport-collect: Drop launchpadlib login code, just use the CrashDatabase implementation from apport/crashdb_impl/launchpad.py. * Make package backportable to hardy and intrepid: - debian/control: Relax python-central buil-dependency to 0.5.6. - debian/rules: Determine DH_PYCENTRAL value ("include-links" vs. "nomove") based on the installed pycentral version. - debian/rules: Only supply --install-layout=deb when Python version is 2.6. * apport/hookutils.py: Add docstring for attach_hardware, thanks Matt Zimmerman! (Merged from lp:~mdz/apport/hookutils) * apport/crashdb_impl/launchpad.py: Support older wadllib API where bug.date_created was a string instead of a datetime object. (Cherrypicked from trunk). * debian/control: Drop apport dependency to python-xdg, it's not required. (LP: #354172) * debian/control: Drop gdb from Depends: to Recommends:. (LP: #354172) * debian/local/apport-collect: Print a friendly error message instead of crashing if the bug number is not an integer. (LP: #351050) * debian/local/apport-collect: Change incomplete tasks back to "New" after data collection. (LP: #363126) * debian/apport.links: source_linux-meta.py -> source_linux.py package hook, so that apport-collect works on "linux" source bug tasks. These get opportunistically translated into binary packages, but the binary "linux" is built by the source "linux-meta". (LP: #350131) * debian/local/setup-apport-retracer: - Use ports.ubuntu.com for non-{i386,amd64,lpia}. - Set up Jaunty by default. - Fix test for being in local unpackaged apport source tree. - Drop installation of python-launchpad-bugs. - Install bzr branches/packages necessary for launchpad, in a shared ~/launchpadlib/ tree: launchpadlib, wadllib, oauth, lazr.uri, httplib2, simplejson. - Clean up apport-chroot calling for extra packages. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 28 Apr 2009 10:50:49 +0200 apport (1.0-0ubuntu5) jaunty; urgency=low [ Martin Pitt ] * Rename etc/default/apport.default to etc/default/apport (brown paperbag), and add debian/apport.preinst to remove the apport.default file on upgrades. (LP: #361543) * debian/rules: Call dh_installinit with --onlyscripts, so that the package calls update-rc.d again. This fixes the calling of init script again, which got broken in 1.0-0ubuntu1. (LP: #361579) [ Matt Zimmerman ] * package-hooks/source_linux.py: Attach /etc/initramfs-tools/conf.d/resume to show the resume device for hibernation -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 15 Apr 2009 22:36:33 +0200 apport (1.0-0ubuntu4) jaunty; urgency=low * etc/default/apport.default: Disable Apport by default for the final release. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 14 Apr 2009 11:47:29 +0200 apport (1.0-0ubuntu3) jaunty; urgency=low * apport/hookutils.py: Factor out package_versions() to generate a simple text listing of relevant package versions and use it in attach_printing() * apport/hookutils.py: Add new function attach_relevant_packages() to attach version information (and perhaps eventually run hooks?) for related packages * apport/hookutils.py: Add glob matching to package_versions() * apport/hookutils.py: Add fuser info and dmesg to attach_alsa * apport/hookutils.py: Add codec info to attach_alsa -- Matt Zimmerman <mdz@ubuntu.com> Thu, 09 Apr 2009 07:36:45 -0700 apport (1.0-0ubuntu2) jaunty; urgency=low * backends/packaging-apt-dpkg.py: Add missing shutil import. * debian/local/ubuntu-bug: Filter out -p and -P, for backwards calling compatibility. (LP: #356755) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 06 Apr 2009 23:04:39 -0700 apport (1.0-0ubuntu1) jaunty; urgency=low * Apport has a proper upstream trunk now (lp:apport) and made an 1.0 upstream release. Use this as an orig.tar.gz. This does not change any code for Jaunty, just removes the Fedora/OpenSUSE specific .spec and init scripts. * Add bzr-builddeb configuration (merge mode). * Add debian/watch for upstream releases on Launchpad. * Drop debian/python-apport.postinst, obsolete for a long time. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 06 Apr 2009 17:37:48 -0700 apport (0.149) jaunty; urgency=low Do some internal cleanup of distribution specific stuff: * problem_report.py, man/apport-unpack.1: Fix description of .crash file syntax (RFC822, not "Debian control"). * Move cron.daily, init script, and default file from debian/ to etc/, and install them in setup.py. These files are appropriate for upstream installation. * Move crashdb.conf and doc/README.blacklist to etc/, to simplify setup.py. * setup.py: Move *.mo generation/installation into my_install_data class, for cleanliness. * Move installation of missing packages for retracing from bin/apport-retrace to new abstract interface apport/packaging.py, install_retracing_packages() and remove_packages(), and move the apt/dpkg code to backends/packaging-apt-dpkg.py. This removes a major piece of apt/dpkg specific code from non-backends. * bin/apport-retrace: Rename option --no-dpkg to --no-pkg and update bin/apport-chroot accordingly. * Move bin/apport-chroot and man/apport-chroot.1 to debian/local, since they are totally Debian/Ubuntu specific. * debian/local/setup-apport-retracer: Update apport-chroot and crashdb.conf paths for above changes. * apport/hookutils.py, files_in_package(): Replace dpkg-query call with packaging.get_files(), to avoid Debianism. * man/apport-retrace.1: Drop reference to "apt", simply talk about package installation. Bug fixes: * setup.py: Fix homepage URL. * debian/local/apport-chroot: If multiple distro IDs point to the same chroot, do not upgrade them more than once with "upgrade all". -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 06 Apr 2009 16:06:33 -0700 apport (0.148) jaunty; urgency=low [ Matt Zimmerman ] * apport/hookutils.py: add attach_media_build to include information about the build of installation media in use (i.e. in a casper live CD environment) * general-hooks/ubuntu.py: use attach_media_build (LP: #351781) * bin/apportcheckresume: Use attach_file_if_exists rather than attach_file to avoid spurious error messages about non-existent log files (LP: #351973) [ Martin Pitt ] * debian/local/ubuntu-bug: Drop generic passthrough of apport-{cli,gtk,kde} options since this leads to too much confusion. Instead just support a single argument and check whether it is a pid, a package name, a .crash file, or a program path. This does the right thing when calling it with a .crash file (LP: #347392) and fixes the help output (LP: #344923) Update manpage accordingly. * apport/hookutils.py: Move attach_media_build() to general-hooks/ubuntu.py, since it is Ubuntu specific. * bin/apport-retrace: Fix KeyError crash on bugs with an ExecutablePath which does not exist any more. Close the bug as invalid instead. (LP: #352331) * bin/kernel_oops: Add "kernel-oops" tag. Since both bin/kernel_oops and bin/apportcheckresume use the "kerneloops" bug class, it previously was hard to filter out the bug reports which were real oopses. (LP: #349621) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 01 Apr 2009 18:10:01 +0200 apport (0.147) jaunty; urgency=low * bin/apportcheckresume: report the pm-suspend.log/pm-hibernate.log from /var/lib. * bin/apportcheckresume: only attempt to attach the stress log if its is present. * bin/apportcheckresume, debian/apport.init: add detection for late resume hangs, those where the user thinks the system was working. (LP: #335323) -- Andy Whitcroft <apw@canonical.com> Mon, 30 Mar 2009 09:47:28 +0200 apport (0.146) jaunty; urgency=low * apport/report.py, _generate_sigsegv_report(): Turn into a class method, so that it can be used by test cases in other modules as well. Also add missing Signal field. * apport/crashdb_impl/launchpad.py: Fully enable operation with staging.launchpad.net. * apport/crashdb_impl/launchpad.py: Add initial test suite, performing data upload, Python and SEGV bug reporting, report download, report updating, tag and duplicate handling. This happens on staging.launchpad.net. * apport/crashdb.py: Add new interface duplicate_of(id) to return the master bug of a duplicate. Also document that close_duplicate() with "None" master bug will un-duplicate the bug. * apport/crashdb_impl/{launchpad,memory}.py: Implement duplicate_of() and add test cases. The Launchpad test case reproduces the "duplicate-of-a-duplicate" regression, which now got fixed in python-launchpad-bugs bzr head. * apport/ui.py, open_url(): Also consider a sesssion as "GNOME" if gconfd-2 is running; some variants such as UNR do not have gnome-panel; this fixes using the preferred browser for them. (LP: #322386) * debian/local/apport-collect: Add new option -p to explicitly specify a (binary) package name instead of guesstimating it from the bug's source package tasks. Document new option in debian/local/apport-collect.1. (LP: #333875) * apport/crashdb.py, duplicate_db_consolidate(): Add logging about removing invalidated bugs from the duplicate database, now that this actually works. * debian/local/ubuntu-bug.1: Update for the possibility to specify a package name or PID without any options. Also document the "ubuntu-bug linux" special case. (LP: #348985) * debian/local/ubuntu-bug.1: Add missing documentation of the case of specifying a path name. * backends/packaging-apt-dpkg.py: When unpacking source trees, try "debian/rules setup" last, since it is the least common variant. * debian/local/ubuntu-fat-chroot: Divert away /usr/lib/xulrunner-1.9.1b3/xulrunner-bin. It is called on debian/rules patch in xulrunner-1.9.1 and hangs eternally in the fakechroots. This is only a temporary kludge, though, until the next xulrunner version lands. * apport/crashdb_impl/launchpad.py: Add test case: Update a bug report which got marked as a duplicate during processing. This reproduces #349407. * apport/crashdb_impl/launchpad.py, update(): Intercept and ignore IOErrors when changing the bug priority. This happens if a bug gets duplicated underneath us. (LP: #349407) * apport/crashdb.py, get_crashdb(): Print syntax errors from parsing conf.d/*.conf to stderr. * apport/crashdb_impl/launchpad.py: Support new CrashDB option "project" which can be set to a LP project name to file bugs against that project instead of the distribution. Add test case for filing crash bug against a project, updating it, duplicating/unduplicating it, and determining fixed version. (LP: #338835) * bin/crash-digger: If apport-retrace exits with 99, consider it a transient error and just stop the retracer, but don't leave the lock file behind. Add appropriate test case to test-crash-digger. * bin/apport-retrace: If apt update fails due to a "hash sum mismatch", exit with a "transient error" code, to stop (but not break) the retracing cycle. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 27 Mar 2009 17:01:08 +0100 apport (0.145) jaunty; urgency=low * apport/crashdb_impl/launchpad.py: Fix typo in previous upload. * debian/local/apport-collect: Do not crash on launchpadlib.errors.HTTPError, but give a proper error message and point out that this script needs "change anything" privileges. (LP: #338201) * apport_python_hook.py: Fix crash for already existing reports, and make behaviour equivalent to bin/apport: Silently exit for existing unseen crash report, and overwrite existing seen crash report. Add test cases. (LP: #323714) * general-hooks/automatix.py: Refuse to send bug reports when ultamatix is installed. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Mar 2009 18:45:34 +0100 apport (0.144) jaunty; urgency=low * apport/crashdb_impl/launchpad.py, mark_retrace_failed(): If report is invalid, remove CoreDump.gz and other attachments. * bin/apport-retrace: If we didn't find the ExecutablePath on the system because the package is out of date, don't crash, but close the bug as invalid. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Mar 2009 10:45:56 +0100 apport (0.143) jaunty; urgency=low * debian/apport.README.Debian: Document how to temporarily and permanently enable crash interception. * backends/packaging-apt-dpkg.py, is_distro_package(): Do not consider a package a native distro one if installed version is "None". This happens with some PPA packages. (LP: #252734) * apport/report.py, anonymize(): Move user name anonymization into the "non-root" case as well; fixes uninitialized variable. (LP: #338847) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 09 Mar 2009 12:16:49 +0100 apport (0.142) jaunty; urgency=low * apport/report.py: Do not include lsb_release's stderr in the DistroRelease: output. * apport/hookutils.py: Fix attach_printing(): - Correct spelling or "error_log". - Do not call fgrep with no file names (if /etc/cups/ppd/ is empty), since that hangs forever. * apport/report.py, _gen_stacktrace_top(): Fix parsing of stacktraces with some addresses missing. Add test cases. (LP: #269133) * apport/ui.py, run_report_bug(): Show details of collected information and give the user a chance to cancel. Previously, collected data was sent directly to Launchpad. Nowadays lots of packages have hooks, so we cannot guarantee any more that bug reports only have non-sensitive information. (LP: #195514) This also allows the user to cancel if (s)he inadvertedly clicked on "Report a problem". (LP: #279033) * apport/ui.py: Fix crash in get_complete_size() for reports that are constructed on the fly instead of loaded from a file (i. e. for bug reports). Fixes displaying of report in apport-cli. * apport/report.py: Slight robustification of test_add_gdb_info_script() test case. * debian/local/ubuntu-bug: Fix invocation with "--help". (LP: #305841) * apport/ui.py, load_report(): Clearer error message if report file does not exist. (LP: #204198) * Remove redundant verbiage from test suite docstrings. * apport/report.py, anonymize(): Fix crash when processing root-owned reports. (LP: #338033) * apport/report.py, anonymize(): Do not anonymize single-character user and host names, since they create an utter mess in bug reports, and also are very low-sensitive. * debian/apport.init: Also start apport if force_start=1 is given. This provides a convenient method of starting apport just for a session without changing the default file. Add a comment to debian/apport.default about this possibility. Thanks to Milan for the suggestion and the initial patch! (LP: #320467) * backends/packaging-apt-dpkg.py, _get_mirror(): Only consider http:// mirrors for fetching Contents.gz. (LP: #315797) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 05 Mar 2009 17:01:05 +0100 apport (0.141) jaunty; urgency=low * apport/hookutils.py: Add cups error log to attach_printing() -- Brian Murray <brian@ubuntu.com> Mon, 02 Mar 2009 10:55:53 -0800 apport (0.140) jaunty; urgency=low * debian/python-{apport,problem-report}.install: Fix site-packages → *-packages. * run-tests: Only check for local packaging_impl.py if running local tests. This unbreaks running tests from /usr/share/apport/testsuite/. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 02 Mar 2009 11:56:59 +0100 apport (0.139) jaunty; urgency=low * apport/report.py, anonymize(): Do not anonymize "root". (Side issue in LP #333542) * debian/rules: Supply --install-layout=deb to setup.py. * debian/local/apport-collect: Attach new info to staging.launchpad.net if $APPORT_STAGING is defined. This makes testing easier. Describe in debian/local/apport-collect.1. * debian/local/apport-collect: Ignore ValueErrors from add_package_info(), which happens if the bug has a source package task which does not have an identically named binary package name. Slightly ugly, but it's nontrivial to do that in a sensible manner; let's just fix the crash for now, since the focus of this tool is to collect information from hooks. (LP: #334823) * apport/hookutils.py, hal_dump_udi(): Filter out serial numbers. (Mentioned in LP #107103) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 02 Mar 2009 11:36:18 +0100 apport (0.138) jaunty; urgency=low * apport/crashdb_impl/launchpad.py: Consider an useful stack trace sufficient for automatically removing the core dump, it doesn't need to be perfect. This is in accordance with not setting the apport-failed-retrace tag for useful, but non-perfect retraces any more. * apport/hookutils.py, backends/packaging_rpm.py: Convert usage of md5 module (which is deprecated in 2.6) to hashlib. * Replace all instances of using an exception's .message attribute with str(exception), since message is deprecated in Python 2.6. * apport/hookutils.py: Add attach_printing(). Thanks to Brian Murray for the initial patch! (LP: #333582) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 24 Feb 2009 22:24:31 +0100 apport (0.137) jaunty; urgency=low * Set python-version to all, include symlinks in the package. -- Matthias Klose <doko@ubuntu.com> Tue, 24 Feb 2009 21:22:36 +0100 apport (0.136) jaunty; urgency=low [ Andy Whitcroft ] * bin/apportcheckresume: remove originator in suspend/hibernate/resume reporting. This was intended for debugging only and is now redundant. * bin/apportcheckresume, apport/report.py: when collecting resume failures in very early boot hal may not be running and we thus unable to obtain the machine type information. Move title generation to the reporting engine. [ Martin Pitt ] * debian/local/apport-collect: Add user environment information, too (LANG, PATH, SHELL). (LP: #332578) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 24 Feb 2009 14:25:21 +0100 apport (0.135) jaunty; urgency=low * problem_report.py, test_write_mime_text(): Add test cases for single-line and two-line UTF-8 values, single-line and two-line Unicode values and a single-line LF-terminated value. Fix handling of the latter two. * problem_report.py, test_write(): Add test cases for single-line and two-line UTF-8 and Unicode values, and fix handling of these in write(). * debian/local/apport-collect: Collect package, OS, and user information as well. (LP: #332578) * package-hooks/source_apport.py: Robustify by using hookutils, and avoid stat errors if /var/crash/* does not exist. * test-hooks: Update dodgy test for uninstalled package, libdb4.3-tcl is not available in Jaunty any more. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 23 Feb 2009 13:14:24 +0100 apport (0.134) jaunty; urgency=low * debian/local/apport-collect: Do not collect information for closed tasks. Thanks for Brian Murray for the initial patch! (LP: #331839) * apport/crashdb_impl/launchpad.py, download(): Download DpkgTerminalLog.txt attachment as well. * apport/report.py: If downloading a nonexisting bug pattern file name succeeds and returns a HTML snippet with "404 Not Found", consider this as failure. This repairs falling back to source package names. (LP: #328751) * apport/hookutils.py: Replace tabs with spaces. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 20 Feb 2009 11:22:15 +0100 apport (0.133) jaunty; urgency=low [ Andy Whitcroft ] * apport/hookutils.py: define and include a machine type from the hardware information in the report, using HAL information where available. * bin/apportcheckresume: include the machine type in the suspend/hibernate report title. They are generally machine specific. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Feb 2009 17:49:03 +0100 apport (0.132) jaunty; urgency=low [ Martin Pitt ] * Add debian/local/apport-collect: Download a Launchpad bug report, get its source package, check if it has apport hooks, and if so, run and upload them. Add manpage, too. (LP: #124338) * debian/control: Add Suggests: python-launchpadlib; this is only needed by apport-collect, thus we don't need to pull that into every default installation; if it's not installed apport-collect will detect and point this out. * debian/control: Add ${misc:Depends} dependencies. [ Jonathan Riddell ] * Set window icon in apport-qt -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 19 Feb 2009 13:50:34 +0100 apport (0.131) jaunty; urgency=low [ Andy Whitcroft ] * bin/apportcheckresume, bin/kernel_oops, cli/apport-cli, gtk/apport-gtk, gtk/apport-gtk.glade, qt4/apport-qt: generalised the KernelOops dialog and handling to allow suspend and hibernate failures present more accurate reasons for the report. Also commonises all messages in the three implementations to simplify internationalisation. [ Martin Pitt ] * po/Makefile: Fix merge-po rule to actually work again. * cli/apport-cli, qt4/apport-qt: Unify string with apport-gtk. * apport/ui.py: Drop some bogus translatable strings. * Update German translations. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 16 Feb 2009 19:31:41 +0100 apport (0.130) jaunty; urgency=low [ Martin Pitt ] * bin/kernel_crashdump: Don't crash if vmcore.log does not exist. * crashdb_impl/launchpad.py: Tag bugs with the architecture they are being reported on. * bin/crash-digger: Revert catching "database is locked" errors during consolidation, since it just hides more fundamental errors. * apport/crashdb_impl/memory.py: Improve docstrings of test suite. * bin/apport-retrace: Do not try to install -dbgsym packages with nonmatching versions, unless --unpack-only is used. Thanks to hggdh for the initial patch! (LP: #309208) [ Andy Whitcroft ] * bin/apportcheckresume: modify the oops title and thereby the launchpad bug title to say suspend or hibernate. * bin/apportcheckresume: modify the tags to bin/apportcheckresume: modify the oops title and thereby the launchpad be resume+suspend or resume+hibernate as appropriate. * bin/apportcheckresume: include any non-free modules in the bug title. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 12 Feb 2009 22:09:35 +0100 apport (0.129) jaunty; urgency=low * bin/apport-retrace: Log broken reports. * bin/apport-retrace: Do not mark bugs as invalid after they are already marked as a duplicate, since that does not work in Launchpad. * debian/local/ubuntu-fat-chroot: Symlink /target -> /, to work for crashes which appear in /target during installation. * bin/apport: Move argv length/usage help before lock check, so that it works if the user cannot lock /var/crash/.lock. Thanks to Kees Cook! * doc/package-hooks.txt: Point out apport.hookutils. * apport/ui.py: Check environment variable APPORT_REPORT_THIRDPARTY in addition to the 'thirdparty' configuration file option for overriding the "genuine distro package" check. Thanks to Oumar Aziz OUATTARA! * apport/crashdb_impl/launchpad.py: In third-party mode, report bugs against Launchpad projects. Thanks to Oumar Aziz OUATTARA for his branch! (LP: #213454) * bin/apportcheckresume: Include /var/lib/pm-utils/stress.log, too. Thanks to Andy Whitcroft for the initial patch, rewrote to use apport.hookutils. * apport/crashdb.py, init_duplicate_db(): Run an integrity check and raise exception if it fails, to avoid running the retracers on a corrupt duplicate db. Add test case to apport/crashdb_impl/memory.py. * bin/crash-digger: Create a backup of the duplicates database right after initializing it (which verifies integrity). * dupdb-admin: Add new command "consolidate". * apport/crashdb_impl/launchpad.py: Request bug lists with batch size 300, for slight speedup of consolidation. * apport/crashdb.py, duplicate_db_consolidate(): Warn about a bug which is not yet fixed, but does not appear in get_unfixed(). In Launchpad, this means that the bug does not have the 'apport-crash' tag any more; if there are many, those would be a huge time/bandwidth waste. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 26 Jan 2009 16:04:16 +0100 apport (0.128) jaunty; urgency=low * apport/ui.py: Introduce new configuration option "thirdparty" and ignore the is_distro_package() check if it is set to true. * bin/apport-retrace: Call Cache.open() after Cache.update(). * bin/apport-retrace: If downloading a report fails (e. g. the description was invalidly modified), mark the bug as invalid with a proper explanation instead of crashing, unless we are in "stdout" or "output file" mode. * apport/crashdb_impl/launchpad.py: Apply some heuristics to attempt recovering broken descriptions as in LP #315728 (intermediate blank lines, and non-apport data append). -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Jan 2009 17:49:55 +0100 apport (0.127) jaunty; urgency=low * bin/apportcheckresume, debian/apport.init: integrate with pm-utils to detect suspend/resume failures. Thanks to Steve Conklin and Andy Whitcroft. LP: #316419. -- Steve Langasek <steve.langasek@ubuntu.com> Tue, 13 Jan 2009 12:54:12 -0800 apport (0.126) jaunty; urgency=low * bin/apport-chroot: If --auth is specified in "login" mode, symlink the file into /tmp/auth in the fakechroot. This makes it much easier to interactively debug retracing. * bin/apport-retrace: Exit with zero for bugs which do not have a core dump, so that it does not completely stop the retracers. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 09 Jan 2009 22:49:48 +0100 apport (0.125) jaunty; urgency=low * bin/apport-chroot: Exit with apport-retraces' exit status, to propagate errors upwards to crash-digger. * bin/apport-retrace: Do not put outdated -dbgsym comments into the bug comments. * Rewrite bin/crash-digger to become much more robust and easier for retracer maintainers: - Now designed around cron-based maintenance: start, process all pending bugs, exit. This makes memory leaks irrelevant, and gets rid of all the logging, daemonizing, and looping code. - Adapt stdout/stderr reporting to be suitable for cron and redirecting stdout to a log file. - Use lock files to avoid overlapping instances and avoid damaging bugs with broken retracers after crash-digger failed. - Handle chroot upgrading, so that this does not need separate cronjobs any more. - Drop old -i option, replace with -D/--dupcheck which is a mode which *only* checks duplicates of Python crashes (no fakechroot handling). - Mark bug as retraced after apport-chroot retrace finished successfully; the process is robust enough now to avoid enless loops even if retracing fails. - Adapt test-crash-digger accordingly. - UbuntuSpec:apport-retracer-maintenance -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 09 Jan 2009 12:14:44 +0100 apport (0.124) jaunty; urgency=low * debian/local/ubuntu-fat-chroot: Divert touch to touch.real and wrap it into a shell wrapper which ignores failures. Some packages use "touch -m" which fails with EPERM on directories under fakechroot. Also disable gconf-schemas and polkit-auth, since they do not work in fakechroots. * apport/crashdb_impl/launchpad.py: Allow using staging for testing. * apport/crashdb.py, mark_retrace_failed(): Add new optional argument "invalid_msg", intended for crashes which cannot be retraced properly (e. g. due to outdated packages). Implement this in apport/crashdb_impl/launchpad.py. * bin/apport-retrace: If we do not have an usable stack trace, and encounter outdated package versions in the crash, close the report as invalid with an appropriate comment. (LP: #308917) * bin/apport-retrace: Update the apt cache before looking for, and installing packages. (Part of UbuntuSpec:apport-retracer-maintenance) * debian/apport.default: Enable by default again for Jaunty. Let the flood begin! -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 08 Jan 2009 14:05:07 +0100 apport (0.123) jaunty; urgency=low * bin/apport: Do not write the report into the log file if opening the report file failed; just log the error. * bin/apport: Remove a previously seen report file, so that the following creation with O_EXCL actually works. * apport/report.py, add_proc_info(): Only try to attach /proc/pid/attr/current if we are root. This works around Python segfaulting regression when encountering EPERM on read() (see LP #314065). * apport/report.py testsuite: Use "isofs" for module license check testing instead of "usbcore", since the latter is more likely to get built into the kernel. * apport/report.py, add_proc_environ(): Use "PATH=(...)" instead of "PATH: ..." notation, to be consistent with other environment variables. Unbreaks the apport test suite. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 05 Jan 2009 18:05:38 +0100 apport (0.122) jaunty; urgency=low * apport/crashdb_impl/launchpad.py: Support extra tags in the report's "Tags:" field, and set them in the Launchpad bug. Document this in doc/data-format.tex. Thanks to Steve Conklin for the patch! -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 05 Jan 2009 10:06:49 +0100 apport (0.121) jaunty; urgency=low * debian/apport.init: Drop long obsolete setting of /proc/sys/kernel/crashdump-size. * debian/apport.init: Make restart actually work if the default file was changed. (LP: #292402) * apport/report.py, add_proc_environ(): Do not include verbatim $PATH, only classify it as "default" (does not appear at all then), "custom, user" (/home or /tmp in $PATH), or "custom, no user". Add appropriate test case. Update the data format documentation accordingly. (LP: #245263) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 08 Dec 2008 19:37:53 -0800 apport (0.120) jaunty; urgency=low * man/apport-cli.1: Fix "sytem" typo. (LP: #288977) * apport/fileutils.py: Add new function get_options() to read ~/.config/apport/settings. In the future, the apport-ignore.xml file will move to this directory, too. Based on idea and initial patch from Nikolay Derkach. * bin/apport: Check config option "unpackaged", and if it is set to True, create a crash dump for unpackaged programs, too. Bump apport package dependency to python-apport for this. * apport/ui.py: Fix regression introduced in in 0.115 for checking successful package name determination. * apport/report.py: Some distro portability fixes in the test suite, thanks to Nikolay Derkach! * Add OpenSUSE spec file, init script, and RPM packaging backend. Thanks to Nikolay Derkach! * apport_python_hook.py, bin/apport: Create files in a race free way to avoid symlink attacks. Thanks to Sebastian Kramer <krahmer@novell.com> for finding them! * problem_report.py test suite: Create debugging leftover which left /tmp/r behind. * apport/crashdb_impl/memory.py: Use example.com, not bug.net, since the latter actually exists now. * apport/hookutils.py: Add attach_network(), attach_alsa(), and attach_hardware(), and add proper docstrings. Thanks to Matt Zimmerman for the branch! * source_linux.py hook: Use above tool functions, which greatly simplifies the hook. * apport/report.py: Also print exceptions from binary and source package hooks, not just from common ones. * apport/report.py, add_hooks_info(): Do not print an error if a source package hook does not exist. * apport/hookutils.py, _parse_gconf_schema(): Correctly handle bool values. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 26 Nov 2008 19:24:23 +0100 apport (0.119) intrepid; urgency=low * debian/apport.default: Disable Apport by default for the final release. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 23 Oct 2008 09:34:41 +0200 apport (0.118) intrepid; urgency=low * apport/hookutils.py: add attach_gconf() function to add non-default gconf settings to a report -- Matt Zimmerman <mdz@ubuntu.com> Mon, 13 Oct 2008 20:10:33 +0100 apport (0.117) intrepid; urgency=low * backends/packaging-apt-dpkg.py, is_distro_package(): Fix crash if apt.Cache()[pkg].origins is None. (LP: #279353) * bin/apport: Log that we are ignoring SIGABRT, since it is a common cause of confusion. * test-apport, create_test_process(): Fix race condition: wait until the child process has fully execve()ed, to avoid coredumping it while it is still running as test-apport process. * apport/crashdb_impl/launchpad.py, update(): Set source package of a bug if the reporter removed it and the task is against 'Ubuntu'. (LP: #269045) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 07 Oct 2008 16:38:06 +0200 apport (0.116) intrepid; urgency=low * Update AUTHORS and debian/copyright, Michael and Troy released their copyright to Canonical. Properly attribute them as authors in the respective files. * debian/local/ubuntu-bug: Fix quoting of the command line arguments, so that several options do not end up as one big argument when being passed to apport-{cli,gtk,qt}. This also repairs launchpad-integration. (LP: #260242) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 26 Sep 2008 10:32:45 +0200 apport (0.115) intrepid; urgency=low [ Matt Zimmerman ] * Add apport/hookutils.py with some convenience functions for writing hook scripts (work in progress) * Extend ubuntu-bug to accept a path as an argument and look up the package name * Rename kernel_hook to kernel_crashdump (there are other kernel hooks) * Change kernel crash report type to KernelCrash * Fix automatix.py to not crash when automatix isn't installed (LP: #267004) * Add bin/kernel_oops hook to capture a kernel oops (eg. via kerneloops) [ Martin Pitt ] * Add AUTHORS file for collecting the list of major contributors and copyright holders. * apport/report.py: If we do not find a bug pattern file for the binary package, fall back to looking for one with the source package name. * run-tests: Provide a better error message if apport/packaging_impl.py does not exist. [ Brian Murray ] * apport/crashdb_impl/launchpad.py: Add regression-retracer tag to bugs which seem to be a regression (duplicate, and crash happens in a later version than the fix). (LP: #271876) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 18 Sep 2008 18:18:03 -0700 apport (0.114) intrepid; urgency=low [ Fabien Tassin ] * apport/ui.py: Use preferred browser when it's recognized as a Mozilla browser (firefox, seamonkey, flock) or Epiphany (LP: #131350) [ Oumar Aziz OUATTARA ] * apport/crashdb.py: Add support for /etc/apport/crashdb.conf.d/*.conf crash database configuration files. Document it in doc/crashdb-conf.txt. * apport/ui.py: Support a new field "CrashDB" in apport reports which select a non-default crash database. Document this in doc/package-hooks.txt. [ Martin Pitt ] * apport/report.py: If a hook crashes with an exception, print it to stderr, for easier debugging of hooks. * apport/crashdb_impl/launchpad.py: If PackageArchitecture is 'all', fall back to looking at Architecture instead of not adding a needs-$ARCH-retrace tag at all. This prevented signal crashes originating from e. g. Python packages from being automatically retraced. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 04 Sep 2008 10:51:24 +0200 apport (0.113) intrepid; urgency=low * apport-qt recommends update-notifier-kde instead of adept-notifier -- Anthony Mercatante <tonio@ubuntu.com> Thu, 28 Aug 2008 15:02:20 +0200 apport (0.112) intrepid; urgency=low * apport/crashdb_impl/launchpad.py: Update attachment handling to current python-launchpad-bugs API, thanks Markus Korn! * apport/ui.py: Use gnome-panel as indicator for a running GNOME session; 'gnome-session' now calls itself x-session-manager, which isn't useful to tell apart session types. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 07 Aug 2008 17:09:49 +0200 apport (0.111) intrepid; urgency=low The "(Kernel) OOPS, I dumped it again!" release. * apport/ui.py: Fix test_run_report_bug_unpackaged_pid() to work with the installed run-tests from the package as well. * apport/crashdb_impl/launchpad.py: Ignore broken LP bug tasks instead of crashing on them. * apport/report.py, add_proc_info(): Report the AppArmor or SELinux context in a new ProcAttrCurrent field, read from /proc/pid/attr/current. Document it in doc/data-format.tex. The field will not be added if the proc attribute cannot be read or isn't present. Thanks to Steve Beattie for the patch and the suggestion! * debian/local/setup-apport-retracer: Switch to intrepid. * debian/local/setup-apport-retracer: Fix installation of python-apt. Also install apt, to avoid library version mismatches to python-apt. * debian/apport.default: Enable apport by default again, now that we have working retracers. * apport/report.py, test_add_gdb_info_script(): Use bash, not dash as test program for core dumping; stack trace is awkwardly bad with dash, so that the test case cannot really work any more. * Add package-hooks/source_linux.py: Package hook for collecting kernel related information. By Matt Zimmerman, thank you! (LP: #251441) * debian/local/ubuntu-bug.1: Fix documentation of -p, it specifies the binary package name, not the source. * apport/packaging.py: Add get_kernel_package() to return the actual Linux kernel package name; useful if the user reports a bug against just "linux". Implement it in backends/packaging-apt-dpkg.py. * apport/ui.py: "Do what I mean" when filing a bug against "linux" and report it against the actual kernel package. * debian/local/ubuntu-bug: If just one argument is given, infer -p/-P from the type of the argument. * apport/ui.py: Drop the PackageArchitecture field for the uploaded report if it is equal to Architecture. Adapt apport/crashdb_impl/launchpad.py to fall back to Architecture, and mention the change in doc/data-format.tex. * problem_report.py, write_mime(): Add new "skip_keys" argument to filter out keys. Add test cases. * apport/crashdb_impl/launchpad.py: Do not write the "Date:" field on upload(), and fetch it from the bug metadata in download(). * apport/crashdb_impl/launchpad.py, download(): Support reading bugs with the "--- " separator instead of "ProblemType: ". Launchpad doesn't create bugs that way ATM, but at least we have the reading part implemented now. * package-hooks/source_linux.py: Drop Uname, ProcVersion, and RunningKernelVersion fields, since they are all subsumed in the ProcVersionSignature field. * apport/ui.py, run_report_bug(): Strip spaces from package argument. * apport/ui.py, add_hooks_info(): Collect OS info first, then call the package hooks, so that the linux hook actually has a chance to delete the Uname field. * bin/kernel_hook, test-hooks: Throw away the original kernel hook which we never used (and got superseded by the proper source_linux.py package hook now). Replace it with the new logic of looking for /var/crash/vmcore{,.log} and turning that into an apport report. * debian/apport.init: Call kernel_hook if /var/crash/vmcore exists. (LP: #241322) * apport/ui.py: Collect information for "ProblemType: Kernel" as well, so that we run the package hook. Adapt test suite to cover this. * debian/control: Bump Standards-Version (no required changes). * gtk/apport-gtk.glade, qt4/apport-qt: Generalize notification of kernel crash, since it now happens after a boot, not right after the BUG/OOPS. But in the future we want to cover both cases. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 05 Aug 2008 18:13:24 +0200 apport (0.110) intrepid; urgency=low * apport/chroot.py: In the test suite, copy some system binaries/libraries into a fakechroot and exercise a lot of standard shell commands (cp, ln -s, rm, rm -r, mkdir, echo, chmod, chown, etc.) with absolute/relative paths. This reproduces the total breakage of rm'ing, chmod'ing, and chown'ing absolute paths in hardy fakechroots. * bin/crash-digger: Intercept exceptions when downloading crash reports for duplicate checking, so that the retracer does not crash on malformed bug reports. (LP: #205178) * apport/packaging.py: Introduce a new function enabled() which reports whether Apport should create crash reports. Signal crashes are controlled by /proc/sys/kernel/core_pattern, but we need that to control whether reports for Python, package, or kernel crashes are generated. * backends/packaging-apt-dpkg.py: Provide implementation for PackageInfo.enabled() for Debian/Ubuntu by evaluating /etc/default/apport. Add various test cases for different configuration files and absent files. * apport_python_hook.py: Do not create reports if Apport is disabled (in /etc/default/apport). (LP: #222260) -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 17 May 2008 12:44:21 +0200 apport (0.109) intrepid; urgency=low [ Martin Pitt ] * debian/local/setup-apport-retracer: Update for some changes in Hardy. [ Loic Minier ] * apport/report.py, add_proc_info(): also strip pathnames starting with 'cow', 'squashmnt', and 'persistmnt' to allow apport to locate the executable pathname, additionally to 'rofs' added in 0.75. This fixes apport for packages installed on the read-write part of the unionfs mounts and under UME which uses different names for the mount points. Proper fix is to rewrite the pathnames in the kernel. (LP: #224168) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 23 Apr 2008 14:30:03 +0200 apport (0.108) hardy; urgency=low [ Martin Pitt ] * apport-{gtk,qt,cli}: Fix handling of file references added by package hooks. (LP: #205163) * backends/packaging_rpm.py: Fix dependency resolution of uname(*) in the RPM backend. Thanks to Patryk Zawadzki! (LP: #213018) * backends/packaging_rpm.py: Fix RPM platform parsing, thanks to Patryk Zawadzki! (LP: #213015) * po/de.po: Fix typo (missing space). * debian/apport.default: Disable Apport for the final Hardy release, since it is less useful in stable releases, and drains a lot of CPU and I/O power on crashes. Disabling it here instead of in update-notifier/adept is more discoverable and more centralized. [ Daniel Hahler ] * bin/apport-retrace: catch the same exceptions from Report.load() like ui.load_report() does (LP: #211899) * Fix uncaught exceptions in apport itself (LP: #215929): - apport/REThread.py: check if "sys" exists in the except block of REThread.run() - apport_python_hook.py: check if "sys" exists in the finally block of apport_excepthook * cli/apport-cli: Fix UnboundLocalError in ui_present_crash, which rendered apport-cli useless (for reporting crashes) (LP: #216151) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 16 Apr 2008 12:24:32 +0200 apport (0.107) hardy; urgency=low * cli/apport-cli: Add translator comment for difficult string. (LP: #210948) * Update German translations. * po/Make{vars,file}: Remove the --language=python option again, since it breaks extracting strings from the glade. intltool-update currently does not seem to have a way to tag a file as "language python", so add an ugly workaround: Create temporary .py symlinks for gtk/apport-gtk & friends, and have intltool extract them. * apport/ui.py: Disallow filing a bug without specifying a package or a PID. Update debian/local/ubuntu-bug.1 accordingly (apport-cli manpage was already correct). (LP: #210348) -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 06 Apr 2008 11:44:38 -0600 apport (0.106) hardy; urgency=low [ Martin Pitt ] * apport/crashdb_impl/launchpad.py: Fix spelling mistake in p-lp-bugs API (now corrected there). * apport_python_hook.py: Catch IndexError for invalid sys.argv[0], too. (LP: #204940) * apport/ui.py: Add test_run_report_bug_unpackaged_pid() test case which reports a bug against a pid which belongs to an unpackaged program. This reproduces LP #203764. * apport/report.py: Drop add_hooks_info() assertion on nonexisting Package field, return silently instead. This conforms to the behaviour of the other add_*_info() functions and avoids nasty error handling. * apport/ui.py: Generate proper error message when calling with -f -p PID and PID belongs to an unpackaged program. (LP: #203764). [ Sebastien Bacher ] * po/Makevars: add the --language=python xgettext option so the translations template is correctly updated on build since cdbs is using intltool-update directly and not the corresponding makefile target -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 01 Apr 2008 16:02:46 +0200 apport (0.105) hardy; urgency=low * apport/crashdb_impl/launchpad.py: Ignore ValueErrors when subscribing a team, since these are usually due to the team already being subscribed. * apport/report.py, anonymize(): Be robust against empty user names and only anonymize fields which can potentially contain user specific data. (LP: #195706) * backends/packaging-apt-dpkg.py, get_architecture(): Return 'unknown' instead of None if package architecture cannot be determined. (LP: #198548) * apport/ui.py, run_crash(): Intercept other IOErrors, too (such as EISDIR) and print out proper error message instead of crashing. (LP: #201819) * apport_python_hook.py: If the Python script has mutilated sys.argv so that even sys.argv[0] does not exist any more, fall back into readlink()ing /proc/pid/exe and gracefully handle the failure of that, instead of crashing in the crash handler (ugh). Add test case. (LP: #198183) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 18 Mar 2008 23:04:57 +0100 apport (0.104) hardy; urgency=low [ Martin Pitt ] * apport/crashdb_impl/launchpad.py, get_source_version(): re-escape the package name so that it doesn't stumble over '+' and similar characters. * apport/ui.py tests: assert that ProcEnviron is also included into bug reports where we do not have a PID, since having the local information is interesting and important (and acceptable in terms of personal information). * apport/report.py: Split out method add_proc_environ() for getting ProcEnviron, so that we can call it separately. * apport/ui.py, run_report_bug(): Add ProcEnviron if we do not have a pid to file a bug against. This way, bugs filed against packages or distro also get locale information. (LP: #198514) * apport/fileutils.py, mark_report_seen(): Do not crash if the file does not exist any more, because it was removed underneath us. (LP: #199932) * apport/ui.py, test_collect_info_exepath(): Add a tuple argument and a CompressedValue to the test report. This reproduces LP #199349. * apport/report.py, anonymize(): Only work on string values. (LP: #199349) * apport/ui.py: If a report has a field "Ignore", entirely ignore the report without even presenting an explanatory error dialog (as "UnsupportableReason" does). Document this in doc/package-hooks.txt. (LP: #198863) * debian/control: Bump Standards-Version (no changes necessary). * debian/control: Fix wrongly spelt project names (Python and GTK+). Thanks to lintian's scrutiny. * gtk/apport-gtk-mime.desktop.in, qt4/apport-qt-mime.desktop.in: Add a main category. [ Kees Cook ] * apport/report.py: fix module license checking logic (LP: #199927). - nonfree_modules: being unable to find a module should not mean the module is non-free. - test_module_license_evaluation: check modinfo reporting. * problem_report.py: Skip atime test case if file system is mounted noatime. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 13 Mar 2008 14:01:30 +0100 apport (0.103) hardy; urgency=low * bin/apport-unpack: Print error messages instead of crashing for problems like nonexisting file names passed as arguments. (LP: #185273) * backends/packaging-apt-dpkg.py, is_distro_package(): Explicitly check site for "ppa", so that we do not automatically file bugs for PPA packages. This works around Soyuz bug LP #140412 for the time being. * apport/report.py: Add standard_title() test cases for Python crashes with a custom message, and a custom message with newlines. The latter reproduces LP #190947. * apport/report.py, standard_title(): Do not rely on a fixed position of the topmost function; use iteration and regular expression matching instead. (LP: #190947) * apport/ui.py, parse_argv(): Specify that --pid/-P argument must be an integer, to avoid exceptions when it's not. (LP: #193494) * apport/report.py: Use uname -srm, not -a, to hide the hostname. (part of LP #192786); also use os.uname() instead of calling the system program. * problem_report.py(): Make write() work for reports with CompressedValues. Add test case. * apport/ui.py: Add test case test_run_crash_anonymity() which asserts that the crash dump does not contain strings which can identify the user, such as the user name, login name, host name, and current directory. * apport/report.py: Add method anonymize() which replaces user specific strings with generic ones. * apport/ui.py, thread_collect_info(): Call anonymize() on the report. (LP: #192786) * bin/apport-retrace: Only update a bug report with new attachments if it is not a duplicate. (LP: #172792) * bin/apport-retrace: Print out proper error message instead of an exception if trying to do write operations to the bug tracker without specifying a cookie file. (LP: #146423) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 25 Feb 2008 17:47:13 +0100 apport (0.102) hardy; urgency=low [ Martin Pitt ] * problem_report.py: Support reading reports with legacy zlib compression in 'retain compressed values' mode (as used nowadays by apport when reporting a crash). Add a test case, too. (LP: #129616) * debian/control, debian/rules: Switch from python-support to python-central, and use 'nomove' option so that apport works during upgrades, too. (LP: #121341) * debian/rules: Use dh_icons instead of dh_iconcache. * debian/apport.init: Do not stop apport in any runlevel (LSB header). * apport/ui.py, run_crash(): Catch zlib.error on invalidly compressed core dumps. (LP: #176977) * apport/ui.py: Give a meaningful error message instead of crashing if the package for a crash report is not installed any more. (LP: #149739) * apport/ui.py: Do not include ProcCmdline in bug reports, since these are not ack'ed by the user and might contain sensitive data. (LP: #132800) * apport/ui.py: Add various test cases for crash reports whose packages have been uninstalled between the crash and the report. This reproduces LP #186684. * apport/ui.py, load_report(): Produce proper error message if executable/interpreter path do not exist any more. (LP: #186684) * cli/apport-cli: Intercept SIGPIPE when calling sensible-pager, to avoid crash when quitting it prematurely. (LP: #153872) * bin/apport-checkreports: Print out a list of program names/packages which have a pending crash report. (LP: #145117) * apport/ui.py, run_argv(): Add return code which indicates whether any report has been processed. * cli/apport-cli: If no pending crash reports are present, say so and refer to --help. (LP: #182985) * apport/ui.py: Waive check for obsolete packages if environment defines $APPORT_IGNORE_OBSOLETE_PACKAGES. Document this in the apport-cli manpage. (LP: #148064) [ Daniel Hahler ] * .crash file integration for KDE3 (LP: #177055) - debian/apport-qt.install: install added files qt4/apport-qt-mime.desktop and qt4/apport-qt-mimelnk.desktop * Fixed minor warnings/errors from desktop-file-validate in gtk/apport-gtk-mime.desktop.in and qt4/apport-qt.desktop.in (LP: #146957) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 06 Feb 2008 12:55:53 +0100 apport (0.101) hardy; urgency=low * debian/control: Add python-xdg dependency to apport, since apport-cli needs it. (LP: #177095) * apport/ui.py: Add test case for reporting a report which has been preprocessed by apport-retrace, i. e. has a stack trace, but no core dump any more (reproducing LP #185084). * apport/ui.py, run_crash(): Do not reject reports which have a stack trace, but no core dump. (LP: #185084) * apport/report.py: Fix test_add_gdb_info_load() test case, the temporary executable was already deleted when gdb ran the second time. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 23 Jan 2008 17:48:06 +0000 apport (0.100) hardy; urgency=low * bin/crash-digger: Add option --log for logging to a file, and --pidfile/--stop for daemonization. Add test cases to test-crash-digger. * bin/apport: Do not re-raise exceptions about failure to create the lock file, to avoid crashing in the case that another apport instance tries to lock at exactly the same moment. (LP: #147237) * apport/report.py testsuite: Check that our methods get along with binary data which turn into CompressedValue objects after loading them from a file. This reproduces LP #148305. * problem_report.py, CompressedValue: Add method splitlines() since we need it very often. Add test case to test_compressed_values(). (LP: #148305) * problem_report.py: Add test case to check that update() works and does the right thing with binary values and overwriting. This confirms that importing a dictionary works. * debian/local/setup-apport-retracer: Update for hardy. * apport/crashdb_impl/launchpad.py: get_source_info() does not work any more due to HTML changes in Launchpad, and not showing the component any more on /distro/+source/package. Since we do not actually need component and release name any more, rename it to get_source_version(), fix the regular expression to just get the version, and adapt get_fixed_version() accordingly. * debian/local/setup-apport-retracer: Update default apt sources to http://ddebs.ubuntu.com. * apport/ui.py: Robostify cleanup of forked test processes. * apport/ui.py: Sleep for 0.5 seconds after creating the test process in the test suite to give /proc some time to settle down. * bin/apport: Drop evaluation of CORE_* environment variables and mandate calling with <pid> <signal> <core ulimit>. Drop the now obsolete apport/elfcore.py. Adapt test-apport accordingly. * debian/apport.init, use-local: Now call apport with %p, %s, and %c kernel macros (since 2.6.24). Drop Edgy support from init script. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 21 Dec 2007 02:18:48 +0100 apport (0.99) hardy; urgency=low * cli/apport-cli, qt4/apport-qt: Fix typo 'send' -> 'sent'. (LP: #139288) * apport_python_hook.py: Add user info, too. Also add check for this to the test suite. (LP: #145109) * apport/ui.py, run_crash(): Show a proper UI error message instead of just crashing with an exception if the crash report is inaccessible for the invoking user. (LP: #146464) * apport/crashdb_impl/memory.py: Implement mark_retraced(), get_unretraced(), and get_dup_unchecked() for completeness, and define _MemoryCrashDBTest also when not running file as __main__. This makes the class useful for higher-level test suites. Add test cases for the new functions. * apport/crashdb_impl/memory.py: Support 'dummy_data' option which adds a few dummy crashes by default. This is useful for external test suites which cannot otherwise pre-fill the in-memory db. Add checks that this works properly. * bin/crash-digger: Use self.log() more consistently, and flush stdout in log(), so that we do not lose logs on output redirection. * Add test-crash-digger: Initial test suite for bin/crash-digger. * apport/ui.py, run_crash(): Intercept CRC errors from the info collection thread, which happens on broken core dumps. (LP: #132212) * cli/apport-cli, ui_present_package_error(): Fix running of dialog, so that reporting package problems with apport-cli actually works. (LP: #136369) * apport/ui.py, run_crash(): Intercept ENOSPC and present a proper error message. (LP: #145100) * gtk/apport-gtk.glade: Fix title of upload progress window to comply to HIG. Thanks, Bruce Cowan. (LP: #144782) * qt4/apport-qt: Fix Unicode <-> UTF-8 conversion. Thanks, Daniel Hahler! (LP: #148177) * apport/ui.py: Only import xdg.DesktopEntry when a .desktop file has been found in the affected package. This avoids the dependency on servers with just apport-cli. Thanks, Matthias Gug! (LP: #130013) * apport/fileutils.py: Do not fail if there are no packages installed which have one or several .desktop files. Thanks, Matthias Gug! -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 28 Oct 2007 18:32:07 -0400 apport (0.98) gutsy; urgency=low [ Martin Pitt ] * debian/local/setup-apport-retracer: launchpadBugs -> launchpadbugs (recently renamed Python package in python-launchpad-bugs). * apport/crashdb_impl/launchpad.py, test examples: Do not duplicate to bug #1, that generates a huge amount of spam. Use another test bug. * apport/crashdb_impl/launchpad.py, download(): Use Bug.description_raw, since LP mangles spaces in .description. Bump p-lp-bugs dependency. * apport/crashdb_impl/launchpad.py, close_duplicate(): Explicitly set the duplicate after removing attachments, since the new LP does not allow any modification of duplicate bugs. * bin/crash-digger: Only consolidate the duplicate DB when -i is given (i. e. usually only on one running instance). [ Colin Watson ] * Use bugs.launchpad.net for +filebug and +bugs requests. (LP: #138090) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 01 Oct 2007 14:35:07 +0200 apport (0.97) gutsy; urgency=low [Martin Pitt] * problem_report.py: Coerce CompressedValue.__len__() to return an int to work on Python 2.4, too. * debian/local/setup-apport-retracer: Adapt ddeb apt source for the move from ~pitti to ~ubuntu-archive. [Markus Korn] * port to new python-launchpad-bugs API. [Daniel Holbach] * small fixes to the port. * debian/control: bumped python-launchpad-bugs Depends to >= 0.2.2. -- Daniel Holbach <daniel.holbach@ubuntu.com> Tue, 04 Sep 2007 11:24:28 +0200 apport (0.96) gutsy; urgency=low * Create man pages for apport-cli, apport-chroot, and dupdb-admin. * apport/fileutils.py, find_file_package(): Try to resolve symlinks in the directory path. (LP: #125551) * apport/crashdb_impl/launchpad.py, debian/local/setup-apport-retracer: Use packaging.get_system_architecture() (which is dpkg --print-architecture on Debian/Ubuntu) instead of uname, so that this does the right thing on lpia. * problem_report.py, write_mime(): Use base64 encoding for gzipped attachments, to not screw up mail servers. Thanks to Tim Yamin for this patch! * apport/crashdb.py: Drop the last argument (-1), since it is the default anyway and did not yet exist on Python 2.4. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 21 Aug 2007 14:11:48 +0200 apport (0.95) gutsy; urgency=low * general-hooks/automatix.py: Remove hashbang, it's not an executable script. * apport/report.py: Support system-wide blacklisting: /etc/apport/blacklist.d/. Add test cases. * Add doc/README.blacklist: Document blacklist.d/, install it there in setup.py. * debian/rules: Blacklist wine-preloader, so that we ignore wine crashes until an appropriate way is found to deal with them. (Point 6 of apport-better-retracing spec.) -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 11 Aug 2007 18:10:54 +0200 apport (0.94) gutsy; urgency=low * doc/data-format.tex: Some updates to incorporate feedback from Gnome upstream: - Do not talk about "Distributions" any more, but "Operating systems". Gnome is used on non-Linux OSs, too. - Split "DistroRelease:" field into "OS:" and "OSRelease:". - Explicitly mention that CoreDump, StackTrace etc. can also contain minidump output. - Increase document version to 0.2. * apport/report.py, obsolete_packages(): Fix crash when apt does not know an available version of a package. (LP: #128176) * test-apport: Add check that apport aborts immediately if another apport instance is already running. Also test that a symlink attack on the lock file is not possible. * bin/apport: Abort running several apport instances at the same time, by lockf()'ing /var/crashes/.lock and aborting on failure. (LP: #119622) * Add bin/gcc_ice_hook: Script to create an apport report for a gcc ICE (internal compiler exception). Add test cases to test-hooks, and ship it in the 'apport' package. (LP: #125551) * run-tests: In 'local' mode, only explicitly run the apt/dpkg implementation instead of backends/*, since the RPM ones don't have tests yet. * apport/crashdb.py: Add a second optional parameter to upload() to specify an upload progress callback function. Adapt the declarations in the Launchpad and Memory implementations, too. * apport/crashdb_impl/launchpad.py, upload(): Pass upload progress callback handler to launchpadBugs.storeblob.upload(), which supports this since version 0.2~39. Bump dependency to it accordingly. * apport/ui.py, file_report(): Define an upload progress callback handler, pass it to the crashdb upload(), and feed ui_set_upload_progress() with some actual data. (LP: #91521) * problem_report.py: Remove support for reading bz2 compressed binary data. That was only relevant during edgy's development cycle. * apport/report.py, test_add_proc_info(): Fix determination of /bin/zgrep interpreter. * problem_report.py: Switch encoding of binary values from bare zlib to proper gzip format, since this is much more useful when reusing the compressed value. Retain support for zlib-only reports. Add test cases for both old and new encodings, and adapt the other test cases for the new format. Update doc/data-format.tex accordingly. * problem_report.py, write(): Add new permitted 'binary' argument value 'compressed', which retains gzip compressed binary values instead of unpacking them transparently. Add test cases. * problem_report, write_mime(): Eliminate unnecessary usage of StringIO. * problem_report, write_mime(): Make function work for compressed binary values. Add test case. * apport/report.py, add_gdb_info(): Make function work if CoreDump is a compressed value. * apport/ui.py: Load crash report with keeping compressed binaries. This avoids loading the entire uncompressed core dump into memory, and avoids recompressing it all over again for generating the crash database upload MIME document. This greatly speeds up crash reporting, too. (LP: #98562) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 31 Jul 2007 21:32:00 +0200 apport (0.93) gutsy; urgency=low * apport/crashdb.py: Set sqlite connect timeout to two hours, instead of the default 5 seconds. Previously, one retracer always crashed when the other was consolidating the database. * bin/dupdb-admin, command_dump(): Correctly interpret empty version strings as 'fixed in unknown verrsion', not 'unfixed'. * apport/crashdb_impl/launchpad.py: Fix typo in bug comment string. * apport/crashdb_impl/launchpad.py: Add function get_source_info() which parses out release, version, and component from https://launchpad.net/$DISTRO/+source/$PACKAGE. * apport/crashdb_impl/launchpad.py, get_fixed_version(): If a bug is fixed, return the current version (as approximation of the version where the bug was fixed), instead of an empty string (which meant 'fixed in unknown version'). [apport-crash-duplicates spec] -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 25 Jul 2007 17:04:27 +0200 apport (0.92) gutsy; urgency=low * bin/crash-digger: Do not crash if duplicate db is locked when attempting to consolidate it. This happens often because in the DC we have two parallel instances (for amd64 and i386). * Move ubuntu-fat-chroot from bin/ to debian/local/, since it is so heavily Ubuntu specific. * debian/local/ubuntu-fat-chroot: Use diversions for the binaries we want to disable, so that chroot upgrades do not trash the modifications. * debian/local/setup-apport-retracer: launchpad-crash-digger -> crash-digger. * bin/crash-digger: Add option -i/--arch-indep-dupcheck to explicitly enable duplicate checking of arch-independent crashes like Python exceptions. We only want to process them on one architecture to avoid scattering the duplicate database. * apport/crashdb_impl/launchpad.py, get_unfixed(): Search for 'apport-crash' tag, not 'apport'. * bin/apport-unpack: Fix format string in error message. * apport/ui.py, __init__(): Intercept ImportError, which can happen for crashes during system upgrades. (LP: #124354) * Add general-hooks/automatix.py: Refuse to send problem reports if automatix is installed. * doc/package-hooks.txt: Do not document UnsupportableReason, since it does not make sense to set it in package hooks (it is checked before calling the hooks). Hooks should use UnreportableReason only. * apport/ui.py, test_run_crash_package(): Check that 'Package' problem reports collect additional information, too. * apport/ui.py, collect_info(): Collect additional information for 'Package' problem reports, too. * Revive preloadlib/: - Remove PIPE_CORE #ifdefs and make them the default. We do not need to support the Edgy kernel patches in this version any more. - Install signal handler for SIGABRT, too. - Read core ulimit, pass it to apport in CORE_REAL_RLIM, and set it to zero for the program, since we do not actually want the kernel to write core files when we pipe the core dump to apport. - test-apport: Pass APPORT_REPORT_DIR to the manually called apport instance in the memory clipping test; otherwise it'll write into /var/crash/, which we do not consider in library mode. * apport/crashdb_impl/launchpad.py, __init__(): Only do the "download bug #2" hack if we actually have an authentication cookie. Thus, do it only on the retracing servers, not on the client side. (LP: #125142) * apport/report.py, crash_signature(): Generate a signature for one-line Python tracebacks, too. This sometimes seems to happen, e. g. LP#124588. (LP: #125020) * apport/crashdb_impl/launchpad.py, update(): Set bug importance to Medium if retracing was successful. (LP: #106379) -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 24 Jul 2007 21:50:34 +0200 apport (0.91) gutsy; urgency=low * bin/apport: Remove code that supported the Edgy kernel way of core dump passing. Also factorize the CORE_REAL_RLIM evaluation, since it is likely to change in the near future. * apport/crashdb_impl/launchpad.py, close_duplicate(): Delete some attachments, as specified in apport-crash-duplicates spec, and make the bug public afterwards. * apport/crashdb_impl/launchpad.py, close_duplicate(): If the master bug is already duped to yet another bug, mark the bug to that one instead of the master. * apport/crashdb.py: Split out duplicate_db_last_consolidation() for getting the date (or seconds since) the last consolidation, so that we can use it externally. * apport/crashdb.py: Add duplicate_db_change_master_id() to change the master ID of a crash. Add test case to apport/crashdb_impl/memory.py. * Add bin/dupdb-admin: Initial version of duplicate db CLI app; can dump the db, display consolidation state, and change master bug IDs for now. Ship it in apport-retrace. * apport/crashdb.py, duplicate_db_last_consolidation(): Fix timedelta seconds calculation to actually take the days into account, too. * bin/crash-digger: Fix dumping of dup db after consolidation. * apport/ui.py: - test_run_report_bug_package(): Add test case for calling the UI in bug filing mode with an invalid package name. - run_report_bug(): Do not crash on invalid package name, generate an error message instead. (LP: #123644) * apport/fileutils.py, mark_report_seen(): Do not crash if the file has already been deleted underneath us. (LP: #122347) * apport/ui.py, run_report_bug(): Do not crash if the target process runs as a different user. Print a proper error message instead. Add test case test_run_report_bug_noperm_pid(). (LP: #121121) * apport/fileutils.py, likely_packaged(): Ignore /var/lib/schroot. Add test case. (LP: #122859) * apport/ui.py, open_url(): Intercept weird race condition for os.close() trying to close an already invalidated fd. (LP: #123180) Merge the fedora branch, thanks to Will Woods <wwoods@redhat.com>: * Add apport.init.fedora: Fedora specific init script. * Add apport.spec: RPM build recipe. * Add backends/packaging_rpm.py: Partial implementation of the packaging backend for RPM which applies to all RPM-based distros. * Add backends/packaging_fedora.py: Concrete packaging backend implementation for Fedora. * apport/elfcore.py: Classes for parsing general ELF files, and information from core dumps. * bin/apport: Fall back to reading signal number and PID directly from the core file (via elfcore.py) if CORE_SIGNAL and CORE_PID are not defined (i. e. when running on a non-Ubuntu kernel). * crashdb.conf: Add stanzas for Fedora and a 'debug' database which uses the 'memory' crashdb implementation. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 14 Jul 2007 15:08:35 +0200 apport (0.90) gutsy; urgency=low * apport/ui.py, load_report(): Catch IOError, too. LP: #118827 * Merge apport-cli package into apport itself. The program itself is just 3 kB compressed, and it's not worth wasting another 34 kB compressed changelog for this tiny bit. * apport/report.py, obsolete_packages(): Use the version comparison from the packaging system instead of just testing for inequality. This catches zero epochs. Thanks to Will Woods <wwoods@redhat.com>! * apport/ui.py: Add option -c/--crash-file to run the UI with a particular crash file (which can be anywhere) instead of all pending crashes in /var/crash/. * Add xdg-mime/apport.xml: XDG MIME type definition for .crash files. * Add gtk/apport-gtk-mime.desktop.in: Link text/x-apport MIME type to apport-gtk -c, so that .crash files can be reported with Gnome. * Add debian/apport.links: Install an icon symlink for the MIME type. * apport/ui.py: Do not ask the initial "Do you want to report this?" question when being invoked with --crash-file. * po/POTFILES.in: Add missing cli/apport-cli. * po/de.po: Updated for apport-cli. * cli/apport-cli: Add option for keeping the report file without sending it, and to display its path. This is for sending the report later, copying it from a server to a workstation with internet connection, etc. * apport/crashdb_impl/launchpad.py: Simplify _subscribe_triaging_team(), now that we do not differ between main and universe policies any more. * apport/report.py: Support another hook directory /usr/share/apport/general-hooks/ for scripts which are run for every problem report. This was requested for adding e. g. AppArmor logs, etc. Add test cases. * Add debian/apport.dirs again to ship that hook directory. * doc/package-hooks.txt: Document the general hooks. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 10 Jul 2007 21:10:19 +0100 apport (0.89) gutsy; urgency=low Implement private crash bug handling, according to https://wiki.ubuntu.com/CrashReporting: * apport/crashdb_impl/launchpad.py: - upload(): If we have an Ubuntu bug, mark it as private and only subscribe 'apport' (the 'Apport retracing service' user). - Add function _subscribe_triaging_team() which subscribes ubuntu-crashes-main for source packages in Ubuntu main or restricted, or ubuntu-crashes-universe for other packages. It does not touch non-Ubuntu bugs, since these are not marked private by default and are outside of the scope of this spec. - update(), _mark_dup_checked(): Call _subscribe_triaging_team(). - Note: This entire spec is a gross hack, and Ubuntu derivatives do not benefit from it at all. We have to live with this until LP grows a real crash database. - get_distro_release(): Make this function work with private bugs, too, by using p-lp-bugs' safe_urlopen(). Bug fixes: * apport/crashdb_impl/launchpad.py: Revert simplification change of 0.85: BugList returns a set of strings, not integers; due to non-identity they do not work with the usual set operations. * apport/crashdb_impl/launchpad.py: Add function get_source_component() to query Launchpad for the component of a given distribution and source package. (This will be required for implementing crash-reporting). * backends/packaging-apt-dpkg.py, _search_contents(): Package list is actually comma separated, only take the first item. This fixes retracing of e. g. #124139. * backends/packaging-apt-dpkg.py, _search_contents(): Fix package name parsing for non-main components. This fixes retracing of e. g. #124111. * apport/report.py, _read_maps(): Revert ptrace hack when maps cannot be read. maps file is now protected based on process ownership, not ptracing. * apport/crashdb.py, apport/crashdb_impl/launchpad.py, apport/crashdb_impl/memory.py: Remove official interface mark_dup_checked(), as it should only be an internally used function. Add report parameter, since we will need it there in the future. Remove explicit call from bin/crash-digger and instead change check_duplicate() to call it on its own. * apport/crashdb_impl/launchpad.py, download(): Replace dodgy parsing of fields from the description with proper code, so that multi-line fields are read correctly, too. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 06 Jul 2007 11:19:22 +0200 apport (0.88) gutsy; urgency=low * po/de.po: Update. * backends/packaging-apt-dpkg.py, _search_contents(): Do not check the return value of zgrep. It usually errors out with 'stdout: broken pipe' when called with -m1. * bin/crash-digger: Mark a bug as retraced if DistroRelease: cannot be determined. Those are bugs apport cannot handle. * backends/packaging-apt-dpkg.py, get_source_tree(): Call apt-get source with --assume-yes to not block on VCS confirmations. * apport/crashdb.py: Add interface mark_retrace_failed(). Implement it in apport/crashdb_impl/launchpad.py. * bin/apport-retrace: If retraced report does not have a crash signature, mark it as failed with above new function. Bump python-apport dependency for this. * apport/crashdb_impl/launchpad.py, update(): Delete CoreDump.gz attachment if the retrace was successful (i. e. if the report has a crash signature). * apport/ui.py, test_run_crash(): Set the message box title, text, and severity as assertion message if the run_crash() test fails, so that you know why it fails. This usually happens if libc6 or another dependency of the test crash is out of date. * gtk/apport-gtk.glade: Mark string as translatable. LP: #119621 -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 03 Jul 2007 21:38:05 +0200 apport (0.87) gutsy; urgency=low * apport/report.py: - test_gen_stacktrace_top(): Add test case for unwinding a Gnome assertion (g_logv(), g_assert_warning() and similar), see LP #123462. - _gen_stacktrace_top(): Generalize for unwinding multiple functions and a set of function names, and add the Gnome assertion ones. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 02 Jul 2007 11:00:44 +0200 apport (0.86) gutsy; urgency=low * test-apport: Check that apport does not create reports for emtpy core dumps. * problem_report.py: Introduce a fourth optional parameter "fail_on_empty" to file pointer tuples which causes write() to raise an IOError if no data was read. Add test cases. * bin/apport: Enforce non-emptyness of CoreDump. * problem_report.py: Add test case for delayed piping of data passed as file object pointers. This was supposed to explain the reason for getting bugs with zero-byte core dumps, but already works correctly. * apport/report.py, check_ignored(): round the mtime to an int (just like mark_ignore() does), to not get wrong results on file systems that support subsecond file timestamps. This fixes running the test suite on the live CD. * test-apport: Clarify assertion message if /var/crash is not empty. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 Jun 2007 19:14:36 +0200 apport (0.85) gutsy; urgency=low * apport/crashdb_impl/launchpad.py: BugList.bugs is already a set, simplify code a bit. * debian/control: Add dpkg-dev dependency to apport-retrace, for getting dpkg-source. * apport/report.py, crash_signature(): Allow ':' and '~' as part of function names to cover C++. Adapt test case to cover this. * apport/report.py test suite: Do not assume that /bin/zgrep uses /bin/sh, it was recently changed to use bash. Directly read the interpreter from the shebang line. * bin/apport-chroot, command_upgrade(): Supply -y to 'apt-get upgrade' also in verbose mode. * bin/apport-chroot, command_upgrade(): Run 'apt-get clean' before regenerating the chroot tarball. * backends/packaging-apt-dpkg.py, get_dependencies(): Fix crash when encountering a virtual package. LP: #122274 * apport/report.py, obsolete_packages(): Do not consider virtual packages as obsolete. * apport/crashdb_impl/launchpad.py: Do a bogus call to Bug() in the ctor. This initializes python-launchpad-bugs to use a cookie for the urlopen in BugList, so that get_unretraced() and get_dup_unchecked() return private bugs, too. This works around LP #122126. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 25 Jun 2007 16:38:43 +0200 apport (0.84) gutsy; urgency=low * apport/crashdb.py: Add new abstract methods: - get_unretraced() and mark_retraced(id) to get a list of crashes that need to be retraced and chalk them off. - get_dup_unchecked() and mark_dup_checked() to get a list of crashes that need to be checked for being a duplicate and chalk them off. This is aimed at crashes which do not need retracing, such as unhandled Python exceptions. * apport/crashdb_impl/launchpad.py: Implement above methods for launchpad (moving the code from bin/launchpad-crash-digger). * apport/crashdb_impl/launchpad.py: Set "need-duplicate-check" tag for Python crashes. * apport/crashdb_impl/launchpad.py, download(): Fetch Traceback.txt, too, so that we can do duplicate checking for Python crashes. * bin/launchpad-crash-digger: Drop Launchpad specific code and replace it with calls to above new functions. Rename to bin/crash-digger. Also rename all 'cookie' to 'auth' (as happened with the other applications earlier). * bin/crash-digger: Do duplicate checking for needs-duplicate-check crash bugs (such as Python crashes). * bin/apport-retrace, bin/crash-digger: More language cleanup; we should stop talking about 'bugs' and use 'crash' consistently. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 14 Jun 2007 19:50:24 +0200 apport (0.83) gutsy; urgency=low * apport/crashdb.py: Separate abstract from implemented functions. * apport/crashdb.py, apport/packaging.py, apport/ui.py: Use NotImplementedError instead of Exception in the abstract methods. * apport/packaging.py: Add interface compare_versions() for comparing package version numbers. * backends/packaging-apt-dpkg.py: Implement compare_versions() using apt.VersionCompare(), add some test cases. * apport/report.py: Fix typo: 'none' -> 'None'. * apport/chroot.py: Do not include /usr/local/lib and /usr/lib in LD_LIBRARY_PATH, just /lib, so that we still use the libc from outside, but e. g. libxml2 from inside the chroot. https://blueprints.launchpad.net/ubuntu/+spec/apport-crash-duplicates: Merge crash-dups branch, which implements automatic crash duplicate detection: * apport/crashdb.py: Add methods for crash duplicate detection. * apport/crashdb_impl/memory.py: Change internal data management to track fixed version and duplicates. * apport/crashdb_impl/memory.py: Add a test suite for all methods, including the duplicate detection API of the base CrashDatabase (since it is much easier to test it here, on an actual implementation). * debian/pyversions: Bump minimal Python version to 2.5, since this starts providing the sqlite3 module. * apport/crashdb_impl/launchpad.py: Implement new methods required for crash duplicate detection. get_fixed_version() does not approximate version tracking yet; it just returns '' for fixed bugs (which means 'fixed, but unknown version'). Bump python-launchpad-bugs dependency for this to ensure the availability of Bug.mark_duplicate(). * bin/apport-retrace: Add option --duplicate-db which specifies the path to the duplicate sqlite database and enables duplicate detection. * Abin/apport-chroot: Add option --duplicate-db. If a file is given, symlink it into the chroot and pass --duplicate-db to apport-retrace. * bin/launchpad-crash-digger: Add --duplicate-db and pass it to apport-chroot. * apport/crashdb.py: Track last run of duplicate_db_consolidate() in an extra table and add a method duplicate_db_needs_consolidation() which returns True if the last run was more than a given number of seconds ago. Add test cases to apport/crashdb_impl/memory.py. * bin/launchpad-crash-digger, fill_pool(): Check whether the duplicate database needs consolidation (i. e. updating the bug states to the reality in the bug tracker) and if so, trigger it. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 13 Jun 2007 13:09:57 +0200 apport (0.82) gutsy; urgency=low * Add bin/ubuntu-fat-chroot: Script to install a set of commonly needed packages into a minimal Ubuntu chroot (as created by apport-chroot). This requires some hacking of postinst and /usr/sbin/ files in between the installation stages and thus deserves a script on its own. * apport/packaging.py: - Add "uninstalled" option to get_file_package(). If set to True, this will do an expensive search of files/packages which are not installed. - Add interface "set_mirror(URL)" for functions which need to retrieve packages and data from distribution mirrors. * backends/packaging-apt-dpkg.py: Implement "uninstalled" option and "set_mirror(URL)", add test cases. * bin/apport-retrace: Use "uninstalled" option now to install packages and corresponding -dbgsyms for uninstalled files mentioned in ProcMaps (Point 1 of apport-better-retracing spec). Bump python-apport dependency. * apport/packaging.py: Add interface get_available_version(package). * backends/packaging-apt-dpkg.py: Implement get_available_version(), add shallow test case. * apport/report.py: Add function obsolete_packages() to return packages in Package: and Depends: which are not up to date. Add test cases. * apport/ui.py, thread_collect_info(): For crashes, call obsolete_packages() and set UnreportableReason: if there are any (Point 2 of apport-better-retracing spec). * apport/ui.py, thread_collect_info(): call standard_title() and add it to the report as 'Title' field. This is useful if reporters modify the default title (per request of Brian Murray, thanks). Add test case. * apport/ui.py: Fix declaration of the test suite's ui_set_upload_progress(). Funny that this has never been triggered before. * apport/report.py, add_gdb_info(): Split out StacktraceTop generation into separate funtion _gen_stacktrace_top(), so that we can test it separately. * apport/report.py, _gen_stacktrace_top(): Step back from the crashed program's own signal handlers, since those are generally not useful for the purposes of StacktraceTop and only impede duplicate matching (Point 4 of apport-better-retracing spec). Add various test cases. * apport/report.py: Add method crash_signature() to calculate an unique identifier of a signal or Python crash, to be used for duplicate detection. Add various test cases. * apport/packaging.py: Add interface get_source_tree() to fetch and unpack a source package to a given directory, optionally specifying a particular version. * backends/packaging-apt-dpkg.py: Implement get_source_tree(). This has a rather crude 'call apt-get source and guess about directories' implementation until python-apt learns about doing this directly and more elegantly (see LP #118788). * bin/apport-retrace: Add gen_source_stacktrace() and a few helper functions to construct a field 'StacktraceSource' with the source code around the affected lines in the stack trace (as available). (Point 5 of apport-better-retracing spec). * apport/crashdb_impl/launchpad.py, update(): Attach StacktraceSource to the bug if it exists. * apport/crashdb_impl/launchpad.py: Check PackageArchitecture for 'all', to not set a retracer tag 'need-all-retrace'. * test-apport: Clarify assertion failure message when an unexpected core dump is present. * apport/report.py, get_module_license(): Do not iterate over Popen.stdout, use communicate() instead. The latter is already fixed to not trip over SIGINTR. (LP: #118965) -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 08 Jun 2007 07:47:04 +0200 apport (0.81) gutsy; urgency=low * apport/report.py: Remove '[apport]' default bug title prefix. (LP: #94819) * apport/crashdb_impl/launchpad.py: Tag new bugs with 'apport-<problemtype>'. This replaces the former '[apport]' prefixing. * debian/local/setup-apport-retracer: Specify a path in '.' command and use sh again. Yay for me needing three attempts before actually RTFMing how '.' works (which is really nasty and strange IMHO). * bin/apport-chroot: Fix symlinks before repackaging the chroot tarball in 'install' and 'installdeb' modes. * debian/local/setup-apport-retracer: Install python-libxml2 and python-apt. * bin/launchpad-crash-digger: Supply --auth instead of the deprecated --cookie to apport-chroot. * bin/apport-chroot: Fix identifier name in command_retrace(). * debian/local/setup-apport-retracer: Set APPORT_CRASHDB_CONF to the local crashdb.conf. * bin/apport-chroot: Unset APPORT_CRASHDB_CONF for login and retrace. * bin/launchpad-crash-digger: Check the release of a bug and whether we have a chroot for it before untagging it. This avoids loosing tags for bugs we do not yet have a working retracer chroot for. * bin/apport-retrace: Do not abort with an exception if package installation fails. Give a proper error message instead and point to -u. (LP: #115681) * apport/crashdb_impl/launchpad.py, update(): Create a temporary directory and use proper file names for the new attachments. With TemporaryFile(), attachment file names ended up as '<fdopen>'. (LP: #115347) * apport/report.py, add_os_info(): Add field 'NonfreeKernelModules' which lists loaded kernel modules which do not have a FOSS license. This is particularly helpful for quickly checking for restricted graphics drivers. (LP: #103239) * apport_python_hook.py: Move the apport.* imports into the try: block and move the likely_packaged() test to the top, to avoid importing apport.report and creating a Report object for non-packaged scripts. This makes the entire code more efficient and robust against errors in the apport modules. (LP: #109955) * apport/report.py, add_gdb_info(): Intercept OSError from gdb invocation (which might be segfaulting itself) and just do not put any gdb output into the report. The automatic retracers can try their luck again. (LP: #112501) * bin/apport-retrace: Fix handling of packages which are still known to /var/lib/dpkg/status, but do not have an apt record any more; treat them like virtual packages and just issue a warning instead of falling over. (LP: #107474) * Add doc/data-format.tex: Documentation of the structure, encoding, and standard keys of the Apport report file format. [apport-for-upstreams blueprint] * Add doc/Makefile: Build and clean rules for generating data-format.pdf. * debian/rules, setup.py: Call doc/Makefile and install the PDF documentation. Add texlive-latex-recommended build dependency for that. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 24 May 2007 19:39:12 +0200 apport (0.80) gutsy; urgency=low Collect all Launchpad specific bits in a separate class and provide an abstract base class. This will greatly help for getting upstream acceptance and the possibility of automatically forwarding crashes upstream (apport-for-upstreams specification): * Add apport/crashdb.py: Abstract crash database interface. This also offers a factory function get_crashdb() which reads a configuration file to find the default crash database to be used. * Add ./crashdb.conf: Crash database configuration file, for Ubuntu on Launchpad. Modify setup.py and debian/python-apport.install to ship it in python-apport. * Add apport/crashdb_impl/memory.py: Simple in-memory implementation of crash database interface for testing. * Add apport/crashdb_impl/launchpad.py: Launchpad implementation of crash database interface. * apport/ui.py: Drop LP specific bits and move towards new CrashDatabase interface. * apport/ui.py, test suite: Do not overwrite file_report() any more, but use the memory CrashDatabase. This will test the actual file_report() implementation and allows the test suite to check the precise value of opened URLs. * apport/{report,ui}.py: Move UserInterface.create_crash_bug_title() and its test cases to Report.standard_title(). It is much more appropriate there and can be used in the retracer as well. * bin/apport-retrace: Drop LP specific bits and move to CrashDatabase interface. Remove the --remove-tag option, we really should not have it here; remove it from man/apport-retrace.1 as well. * bin/apport-chroot: Drop --remove-tag option here, too. * bin/apport-chroot: Drop LP specific bits and move to CrashDatabase interface. * bin/launchpad-crash-digger: Remove retracing tag directly instead of passing --remove-tag to apport-chroot. This is a much cleaner design and avoids infinitely looping on some weirdly failing retraces. * debian/control: Bump some python-apport dependencies for the API changes. Some debranding: * setup.py: Use apport wiki home page for 'url'. * Remove 'X-Ubuntu-Gettext-Domain' from *.desktop.in, since langpack.mk will add it automatically now. * *.desktop.in: Remove 'in Ubuntu' from comment. * cli/apport-cli, qt4/apport-qt: Generalize window titles. Other fixes: * po/de.po: Update. * debian/local/setup-apport-retracer: Revert back 'source' to '.' and use bash instead of sh. POSIX sh does not seem to have a 'source' command. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 21 May 2007 19:25:31 +0200 apport (0.79) gutsy; urgency=low * debian/local/setup-apport-retracer: Fix '.' bashism, replace it with 'source'. * problem_report.py, write_mime(): Drop preamble argument, replace it with an extra_headers dictionary. This is much easier to evaluate on clients. * apport/ui.py: Convert to new write_mime() interface from above. This finally automatically tags bugs with need-$ARCH-retrace. Bump p-problem-report dependency of python-apport for this. * apport/report.py: Change example URLs in the testsuite from launchpad to an artificial ones to avoid the impression that it is LP specific. * backends/packaging-apt-dpkg.py: Formally make this a subclass of apport.packaging.PackageInfo. * debian/control: Use code.lp.net instead of bazaar.lp.net VCS URL. * bin/kernel_hook: Fix/improve the collected information: - Read /proc/modules instead of lsmod. - Fix lspci argument: -n instead of -m. - Add /proc/cmdline. * debian/rules: Use langpack.mk for updating the .desktop files. * Add po/Makevars to specify the domain, to make intltool figure out the gettext domain automatically. * bin/kernel_hook, ./test-hooks: Do not rely on /proc/version_signature any more, it's gone in the gutsy kernel. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 21 May 2007 15:55:10 +0200 apport (0.78) gutsy; urgency=low * apport/packaging.py, backends/packaging-dpkg.py: Add new interface is_distro_package(package) which verifies the origin of a given package. Move the dodgy hack from apport/ui.py to the backend, where it belongs to. Also add a test case. * debian/control: Add python-apt dependency to python-apport. * debian/control: Remove debianutils dependency, it's essential. * Drop backends/packaging-dpkg.py. It had some hackish usage of python-apt anyway, since some things just cannot be figured out with dpkg alone. Since we have to give up on that idea, implement a new clean packaging backend 'packaging-apt-dpkg.py' which now uses python-apt and dpkg in a clean way. * apport/report.py, add_gdb_info(): Fix crash when Stacktrace could not be created. (LP: #107853) * ./test-apport: Check that crashes create a core dump (with proper ulimits) when an unseen crash report exists already. This reproduces LP #105976. * bin/apport: Create core dump file if aborting because an unseen crash report already exists. (LP: #105976) * apport/ui.py: Add a comment for translators. (LP: #104703) * apport/ui.py, load_report(): Also catch zlib.error on invalid reports. (LP: #103547) * apport/report.py: Add method has_useful_stacktrace() to determine whether the stack trace can be considered useful. The current heuristic is to consider it useless if it either is shorter than three lines and has any unknown function, or for longer traces, a minority of known functions. Add test cases. * gtk/apport-gtk, qt4/apport-qt, cli/apport-cli: Do not offer 'reduced report' option if the stack trace is useless. (LP: #87430) Bump the python-apport dependencies of the frontend packages to ensure that we have has_useful_stacktrace(). -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 5 May 2007 17:53:42 +0200 apport (0.77) gutsy; urgency=low * apport/report.py: Replace any() call with a list comprehension to work with Python < 2.5. (LP: #104864) * apport/report.py: Move the ctypes import to the one place where we actually need it, and do not entirely fail if they do not exist (such as in Python 2.4). It is only required for non-default Feisty kernels anyway. (LP: #107662) * apport/chroot.py: Fix test suite to work with Python 2.4's tarfile module output format. * debian/local/setup-apport-retracer: Generalized some feisty specific bits, set default release to gutsy. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 23 Apr 2007 12:22:17 +0200 apport (0.76) feisty; urgency=low * Move python_hook.py out of the apport module to apport_python_hook.py, so that it does not inflict the expensive import of all apport related modules to every python program. Adapt module prefixes accordingly. (LP: #105764) * setup.py, debian/python-apport.install: Install apport_python_hook.py into the python-apport binary package. * apport/ui.py test suite: Unset locale related environment variables so that the tests which check strings are not invalidated by translations. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 12 Apr 2007 11:47:50 +0200 apport (0.75) feisty; urgency=low * apport/report.py, add_proc_info(): Chop off /rofs/ prefix from ExecutablePath, so that crashes work on the live system, too. Arguably a kernel bug, but probably too hard to fix at this time. (LP: #102909) * backends/packaging-dpkg.py, get_modified_files(): Ignore empty lines in broken .md5sums file rather than crashing on them. (LP: #102906) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 4 Apr 2007 21:51:28 +0200 apport (0.74) feisty; urgency=low * debian/apport-{gtk,qt}.install: Do not install .desktop files for now, until we get a proper guided bug reporting. * problem_report.py, write_mime(): Do not re-compress keys which already end in .gz. Add test cases. * test-hooks: Add a (dodgy) test case for calling package_hook on an uninstalled package. After all, this is very likely to happen for installation errors. This reproduces #97636. * backends/packaging-dpkg.py, get_source(): Add a similarly dodgy fallback to apt if the queried package is not installed. This needs to be generalized and cleaned up later, but now is the time for unintrusive small patches. (LP: #97636) * test-apport: Do not fail on non-empty gdb stderr if it only consists of a single warning (as happens on powerpc). * apport/report.py, test_check_interpreted(): Run gedit test on an actually existing file, reproducing the interpreter confusion reported in #102056. * apport/report.py, _check_interpreted(): Add a whitelist of common interpreters and check ExecutablePath against it. (LP: #102056) * apport/ui.py: Ignore SystemError exceptions from apt, which happen on badly formatted source.list entries. (LP: #98901) * apport/ui.py: Fix crash on None candiateOrigin from the apt cache object. (LP: #98961) * gtk/apport-gtk.glade: Add window titles to progress and details dialogs. (LP: #97640) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 4 Apr 2007 14:44:08 +0200 apport (0.73) feisty; urgency=low * problem_report.py, write(): Allow a third optional argument in tuple values, which specify a maximum file size. Above it, the entire key gets removed. Add testsuite checks for all boundary cases. * bin/apport: Limit core dump size to 75% of usable RAM (MemFree+Cached-Writeback). This should avoid trashing people's boxes hard on huge core dumps. Bump dependencies on python-problem-report. Create an expensive, but realistic check for this in test-apport. (LP: #71560) * apport/ui.py, run_crash(): If a signal crash report does not have a core dump, explain that the computer has too little memory for an automatic analysis/report of the crash. Add test suite check. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 29 Mar 2007 23:38:23 +0200 apport (0.72) feisty; urgency=low [ Martin Pitt ] * bin/apport-chroot, command_create(): Install gpgv. * bin/apport-retrace: Fix error handling in fetch_unpack(). * Move apport-retrace.1 manpage from package apport to apport-retrace. Bump Conflicts/Replaces accordingly. * bin/launchpad-crash-digger, apport/ui.py: Remove the special case 'powerpc'->'ppc' and use need-powerpc-retrace uniformly. * debian/control: Add XS-Vcs-Bzr: header. * apport/ui.py: Fix wrong parameter name in help message. * Another grammar fix, thanks to Brian Murray! [ Michael Hofmann ] * debian/local/ubuntu-bug: Try to use apport-cli, if we do not have a $DISPLAY, or neither Gnome nor KDE are running. * debian/control: Recommend elinks, since it is the only text browser so far that works with Launchpad (see #59510) * Add debian/apport-cli.README.Debian: Describe how to integrate apport-checkreports and apport-cli into .bashrc for crash notification on servers. * qt4/apport-qt: Fix undefined symbol in ui_present_package_error(). (LP: #97282) -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 29 Mar 2007 11:41:39 +0200 apport (0.71) feisty; urgency=low * cli/apport-cli, qt4/apport-qt: Fix bad grammar 'some minutes'. (LP: #95296) * problem_report.py, write_mime(): Add optional 'preamble' parameter. Add test case. * apport/ui.py, upload_launchpad_blob(): Set need-$ARCH-retrace tag in MIME preamble. Bump p-problem-report dependency. (LP: #94790) * bin/apport-retrace: In verbose mode, display the path of currently extracting deb. * bin/apport-retrace: Do not fall over errors of dpkg -x (which happens e. g. on udev, where it cannot unpack /dev, since this is a symlink to the real /dev). Merely print out a warning about it. * apport/ui.py, run_report_bug(): Ignore ENOENT from add_proc_info(). This happens if the user closes the application prematurely, so that /proc/pid does not exist any more. Add test case. (LP: #95954) * backends/packaging-dpkg.py, get_modified_files(): Ignore lines in .md5sums files which contain a NUL byte. This Should Not Happen™, but nevertheless did. (LP: #96050) * apport/ui.py, doc/package-hooks.txt: Check for a field "UnreportableReason: <text>" and display an information box that the current crash cannot be reported because of <text>. Add test case. Document the new field. * apport/ui.py: Check package origin, compare it to DistroRelease:, and report crash as unreportable if they do not match. This particularly saves the user from uploading large reports for e. g. opera crashes, and avoids filing Ubuntu bugs from Debian installations. (LP: #75513) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 26 Mar 2007 18:01:24 +0200 apport (0.70) feisty; urgency=low [ Martin Pitt ] * bin/apport-retrace: Add option --remove-tag to remove a Launchpad bug tag. This is intended for an automatic Malone crash retracing system. * debian/control: Bump python-launchpad-bugs dependency to ensure that we have Bug.[gs]et_metadata(). * man/apport-retrace.1: Add documentation for --confirm and --remove-tag. * bin/apport-chroot: Add option --remove-tag and pass it to apport-retrace. * apport/chroot.py, fix_symlinks(): Convert chroot path prefixed absolute symlinks to relative symlinks to avoid fakechroot's weird handling of absolute symlinks. * Add bin/launchpad-crash-digger: Daemon for watching out for need-$ARCH-retrace tagged Ubuntu bugs in Launchpad and calling apport-retrace on them. * bin/apport-retrace: Mangle bug comment with StacktraceTop to not contain invalid UTF-8, to avoid getting Internal Server Errors from LP. * debian/local/setup-apport-retracer: Install libc6-i686{,-dbgsym} into an x86 chroot, to get sane x86 backtraces for crashes in libc. * debian/local/setup-apport-retracer: - Unpack and install python-launchpad-bugs locally if the package is not installed. - Link launchpad-crash-digger into the retracer's bin/ dir. * run-tests: Run tests with python's -tt flag to catch whitespace errors. * Replace tabs with spaces in all Python files. (LP: #93561) * Remove trailing white space in all Python files. * apport/report.py, add_proc_info(): Do not regard symlinks to executables as interpreted scripts any more (such as Debian alternatives). Add test case. (LP: #94732) * problem_report.py: Add new method get_new() which returns a set of all keys which have been added since load() or construction. Add test cases. * problem_report.py: Add optional parameter only_new to write(), which writes only the get_new() keys. Add test case. * apport/ui.py: Remember currently processed report file and update it with the added information, so that it becomes useful for local evaluation, too. Bump python-problem-report dependency to ensure write()'s only_new availability. (LP: #94678) * apport-chroot: Add forgotten sys.exit(1) after printing the error message about an invalid chroot specification. * apport/ui.py, run_crash(): Check for a field "UnsupportableReason: <text>" and display an information box that the current configuration cannot be supported because of <text>, instead of processing and reporting the crash. Add test case for this workflow. With special regards to our Firefox crash triagers who want to get rid of the hundreds of flash-related crashes. :) * apport/report.py, add_hooks_info(): Use execfile() instead of __import__(), since package names might conflict with module names already imported into apport's namespace. Also search for hook named after the source package name (prefixed with 'source_'). Add test cases. * bin/apport-chroot: When specifying --save for login, only save the tarball if the exit status is 0. * bin/apport-chroot, create: Install /usr/sbin/policy-rc.d to disable init scripts. * bin/apport-chroot: Fixed command function selection to not abort with 'unknown command' if the DistroRelease: was unknown. * bin/apport-retrace: Replace --no-purge with --no-dpkg. With this option, do not call dpkg --unpack any more, but dpkg -x, to avoid any fchmod() and other calls which cause problems in fakechroots. * bin/apport-retrace: Fix ordering of version numbers in warning message. * doc/package-hooks.txt: Add some examples, document source package hook. [ Kees Cook ] * apport/report.py, add_proc_info(): If reading /proc/pid/maps fails, ptrace() the target process to make it readable (proposed security improvement in future kernels). * bin/apport-retrace: Fix crash for packages unknown to the apt cache. * apport/report.py, add_gdb_info(): Limit maximum backtrace depth to 2000 to avoid infinitely looped stacks and gdb crashes. (LP: #94455) This also caps the maximum size of information that we add to reports. (LP: #92653) * bin/apport-retrace: Add option -R/--rebuild-package-info, so that apport-retrace works on unprocessed crash dumps in /var/crash. * Some grammar corrections. * Add package-hooks/source_apport.py: Package hook for apport itself. Include /var/log/apport.log and the status of files in /var/crash. [ Michael Hofmann ] * Add cli/apport-cli, setup.py, debian/apport-cli.install, debian/control: Add command line user interface. * apport/ui.py, format_filesize(): Use MiB and GiB instead of MB and GB; these are the official units. Adapt test cases. * apport/ui.py, collect_info()/file_report(): Do not raise an exception on KeyboardInterrupt in the subthreads. * apport/ui.py, open_url(): Do not use gtk.MessageDialog(), but ui_error_message(), and fix error passing so that the message is displayed in the parent thread. * apport/ui.py, open_url(): Check that $DISPLAY is set before considering the KDE/Gnome web browsers. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 26 Mar 2007 09:41:03 +0200 apport (0.69) feisty; urgency=low * apport-chroot: Add command 'installdeb' to conveniently install a bunch of .debs into a chroot. * apport-chroot: Fix 'login' and 'upgrade' commands to not require specifying a chroot map when giving a chroot tarball path as argument. * test-apport: Check that core dumps are written for packaged programs as well, if ulimits want them. (Test for #92029) * bin/apport: Call write_user_coredump() for packaged program crashes and SIGABRT as well. (LP: #92029) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Mar 2007 17:37:23 +0100 apport (0.68) feisty; urgency=low [ Michael Hofmann ] * qt4/apport-qt: Fix taskbar entry, remove an unused method. * qt4/error.ui: Fix icon spacing. [ Martin Pitt ] * apport-retrace: Add option --confirm to display the retraced stack traces and ask for confirmation before uploading them as LP bug attachments. (LP: #91878) * apport-chroot: Add option --confirm-attach; if given, call apport-retrace with --confirm. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 15 Mar 2007 00:05:18 +0100 apport (0.67) feisty; urgency=low * debian/local/setup-apport-retracer: Add apt sources for restricted, universe, and multiverse, too. * po/de.po: Update from Rosetta. * apport/report.py: Remove undefined call to error_log() in _command_output(), replace it with raising proper exceptions. * bin/apport-retrace: Fix 'numer' typo. (LP: #91680) * test-apport: Check that non-packaged executables generate a core dump on SIGABRT, too (test case for bug #92029). * bin/apport: Move check for ignoring SIGABRT below the core dump file writing for non-packaged binaries. (LP: #92029) * gtk/apport-gtk.glade: - Remove titles from the progress windows to comply with Gnome HIG and not repeat the text content. - Improve wording a bit. - LP: #92114 * gtk/apport-gtk{,.glade}: Fix signal handler name of the Cancel button in the upload progress dialog, so that it actually works. (LP: #92115) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 14 Mar 2007 17:34:57 +0100 apport (0.66) feisty; urgency=low * Remove apport/MultipartPostHandler.py, this functionality moved to python-launchpad-bugs now. Add a dependency to that package. * apport/ui.py, upload_launchpad_blob(): Use the shiny new launchpadBugs.storeblob.upload(). * bin/apport-retrace: Attach retraced stack traces back to the Launchpad bug report if no other output option is given (This corresponds to the in-place editing when a report file is specified). Add option --cookie to specify a Mozilla-style cookie file for the necessary Launchpad authentication. * man/apport-retrace.1: Document above apport-retrace changes. * bin/apport-chroot: Add --cookie option: temporarily symlink cookie into the chroot and pass it to apport-retrace in retrace mode. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 10 Mar 2007 15:01:57 +0100 apport (0.65) feisty; urgency=low * debian/local/setup-apport-retracer: - Replace grep-dctrl with grep call, since grep-dctrl is not installed in all the DC chroots. - Do not download apport source from archive.u.c., instead require that this script lives in the unpacked apport source tree. * bin/apport-chroot: Use apt-get options -y and --allow-unauthenticated when installing additional packages. * bin/apport-chroot: Handle --extra-package for 'upgrade', too, to provide a simple way of adding a package to an existing chroot tarball. * debian/local/setup-apport-retracer: Create tarball chroots by default. It only imposes a negligible overhead, and sharing unpacked directories with multiple people is just too brittle. * bin/apport-retrace: Add option --no-purge to not purge unpacked packages after retracing. This is (only) useful with temporarily unpacked chroots, since it's only a waste of time there. * bin/apport-chroot: Call apport-retrace with --no-purge when retracing in a chroot tarball. * apport/chroot.py: Add fix_symlinks() method to remove the chroot root directory prefix from symbolic links; they prevent function of tarball chroots and moving around directory chroots. Add test case. * bin/apport: Fix symlinks after creating and upgrading a chroot. * bin/apport-chroot: Add option --save to update a tarball after logging in to it. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 10 Mar 2007 21:21:25 +0100 apport (0.64) feisty; urgency=low * bin/apport-chroot: Add 'login' command. * bin/apport-chroot: Install apport-retrace into a newly created chroot. * Add debian/local/setup-apport-retracer: Script to install local versions of apport, debootstrap, fake{,ch}root libraries, and a feisty apport fakechroot. This works OOTB on ronne's amd64 and i386 feisty chroots. The script is not shipped in any package yet, but it's convenient to ship it in revision control and in the source. * apport/report.py, _check_interpreted(): When calling an interpreter with a script name as argument, set ExecutablePath to the script instead of the interpreter. Add test case. (LP: #88794) * apport/report.py, search_bug_patterns(): Catch all exceptions from urlopen(), not just IOError. Sometimes this fails with funnier errors. (LP: #89589) * bin/apport-retrace: Give some additional explanation when installing packages fails. (LP: #89916) * apport/fileutils.py, get_all_{system_,}reports(): Fix file access race condition. (LP: #89977) * bin/apport-retrace: Add option -p/--extra-package to install an additional package for retracing. May be specified multiple times. Document new option in man/apport-retrace.1. (LP: #90077) * bin/apport-chroot: Add a similar option -p/--extra-package and install those in the 'create' command and simply pass it to apport-retrace in the 'retrace' command. (LP: #90077) * bin/apport-chroot: Add a -v/--verbose option. * bin/apport-retrace: Do not complain about missing ddebs for Arch: all packages. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 6 Mar 2007 16:20:41 +0100 apport (0.63) feisty; urgency=low New feature: fakechroot support for apport-retrace * bin/apport-retrace: - Simplify program design and throw away the complicated debug symbol sandbox generation, along with the -d and -C options. Instead, directly install the missing packages and ddebs with apt. This makes the tool more suitable for running in chroots and has often been requested anyway. - Add option -u/--unpack-only which causes additionally installed packages to be unpacked without being configured and purged again after retracing. This allows apport-retrace to work under fakechroot and has the nice side effect of speeding up package installation (we do not care about configuration for retracing anyway). * man/apport-retrace.1: Update description for the new behaviour, drop documentation of the -d and -C options, and add documentation of -u. * Add apport/chroot.py: Class for representing and working with chroots; this uses the fakeroot and fakechroot libraries when being called as non-root. * Add bin/apport-chroot: CLI frontend for doing various things with chroots (including fakeroot/fakechroot support from the Chroot class). For now, this implements: - create a chroot (tarball or directory) - dist-upgrade a particular or all chroots - apport-retrace a bug or Apport report file * setup.py: Ship apport-chroot in scripts directory. * Add a new package apport-retrace which ships apport-retrace and apport-chroot and carries all the heavier dependencies (binutils, python-launchpad-bugs, python-apt, etc.). Drop the latter two dependencies from the apport package. This allows us to install the apport-retrace package in fakechroots (not possible with apport itself) and avoid unnecessary dependencies on normal desktop installations. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 5 Mar 2007 11:20:36 +0100 apport (0.62) feisty; urgency=low * apport/ui.py, collect_info(): Use REThread instead of Thread and raise exceptions from it, so that errors during info collection actually become visible. * apport/report.py, add_proc_info(): Check that ExecutablePath actually exists, so that invalid values from transient error conditions are ignored (such as '/usr/bin/gnome-panel\x00\x00\x8b (deleted)'). * apport/packaging.py: Add interface get_system_architecture() to return the system architecture in the distro specific notation. This can differ from get_architecture(package) on multiarch platforms such as amd64. * backends/packaging-dpkg.py: Implement get_system_architecture() to return dpkg --print-architecture, add a shallow test case. * apport/report.py, add_package_info(): Rename key 'Architecture:' to 'PackageArchitecture:' for clarity. * apport/report.py, add_os_info(): Add system architecture as 'Architecture:' field. * apport/ui.py, create_crash_bug_title(): Append warning about non-native package if package architecture does not match the system's one. * All test suites: Remove redundant word 'behaviour' from test descriptions. * test-hooks: Run tests on installed hooks in /usr/share/apport by default and add a '--local' switch to test the hooks in the source tree instead. Use this option in run-tests. * apport/report.py, test_add_proc_info(): Change the python script test so that it does not depend on being run in the source tree. * run-tests: Add a 'local' command line option which runs tests on the files and modules in the build tree. Run tests on system files/modules by default. * setup.py, debian/apport.install: Ship test-hooks, test-apport, and run-tests in /usr/share/apport/testsuite/, so that the full test suite can be run in the installed system. * gtk/apport-gtk.desktop.in: Only show in Gnome and Xfce. * qt4/apport-qt.desktop.in: Only show in KDE. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 1 Mar 2007 10:43:29 +0100 apport (0.61) feisty; urgency=low * bin/apport: - Kernel 2.6.20-9 now sets CORE_REAL_RLIM to -1 instead of not setting it; handle this case correctly. (LP: #87065) - Add forgotten multiplication of CORE_REAL_RLIM with 1024, since ulimit sets kB, not bytes. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 27 Feb 2007 16:06:11 +0100 apport (0.60) feisty; urgency=low * gtk/apport-gtk.glade: Reintroduce window titles. Since the crash notifications are like alerts, title have been removed recently to comply with Gnome HIG standards, but then the user will get 'nameless window' buttons in the task bar. Let's have the smaller evil then. (LP: #87164) * apport/packaging.py: Add get_architecture() interface for determining the architecture of a particular package (which might not match the overall system architecture on multiarch-capable systems, e. g. an i386 Firefox package installed on amd64). * backends/packaging-dpkg.py: Implement get_architecture() and add test case. * apport/report.py, add_package_info(): Add Architecture: field. (LP: #87424) * apport/ui.py: Already mark report as seen when we load it, not just in the information collection thread. That way, reports will only be shown once on systems which have /var/crash mounted noatime, too. (LP: #85809) * apport/fileutils.py, mark_report_seen(): If os.utime() fails, and opening the report file for reading does not change the atime (happens with noatime mount option), don't throw an exception, just delete the report. (other aspect of LP: #85809) * qt4/apport-qt: Wrap gettext() into an unicode(str, 'UTF-8') call, otherwise all non-ASCII unicode strings are broken. (LP: #87757) -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 26 Feb 2007 20:55:40 +0100 apport (0.59) feisty; urgency=low * apport/report.py: Check that interpreter options are discarded in test_check_interpreted_script(). This replicates bug #87005. * apport/report.py, _check_interpreted_script(): Filter out interpreter command line options. This should make the detection of interpreted scripts more robust. (LP: #87005) * test-apport, check_crash(): Differ between expecting the program dumping core and finding a core dump on disk, because this is not equivalent any more with core pipelining. * bin/apport: Write core files into a process' cwd if the process' ulimit requests and permits it and the crashes process is not packaged, so that developers get happy again. Test this behaviour with various ulimits in test-apport. * test-apport: Check that the core file written by apport is valid. This uncovers kernel bugs like #87065 * problem_report.py test suite: Use assertAlmostEqual() when comparing stat times, since they are floats on some systems. * apport/report.py, add_gdb_info(): - Remove all the initial gdb output, which gets rid of the duplicated #0 line. - Replace some stray tabs with spaces. - Thanks to Kees Cook for this! -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 22 Feb 2007 19:52:52 +0100 apport (0.58) feisty; urgency=low * qt4/apport-qt.desktop.in move to System menu -- Jonathan Riddell <jriddell@ubuntu.com> Tue, 20 Feb 2007 11:35:17 +0000 apport (0.57) feisty; urgency=low * apport/ui.py: Intercept ENOMEM and fail gracefully; there is little else we can do at that point, and there is no point in presenting a crash report for this. (LP: #85155) * apport/ui.py: Ignore KeyError when deleting the CoreDump field on sending a reduced report. This Should Not Happen™, but nevertheless did. (LP: #86083) * gtk/apport-gtk, qt4/apport-qt: Intercept ImportError for the non-builtin Python modules. This usually happens for crashes when there is a dist-upgrade active and some Python packages have not been configured yet. (LP: #86007) * apport/ui.py: If the problem report does not apply to a packaged program, and we have an ExecutablePath, mention it in the error message for easier debugging. * apport/python_hook.py: Resolve symbolic links in ExecutablePath. (LP: #85529) * apport/ui.py, open_url(): Remove debugging print statement again, now that we tracked down bug #83974. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 19 Feb 2007 14:40:29 +0100 apport (0.56) feisty; urgency=low * apport/ui.py, open_url(): When being invoked as root, call gnome-open or firefox as root through sudo instead of dropping our uid/gid and calling it normally. The latter does not work for Firefox for some mysterious reason. Thanks to Mika Fischer for this trick. (LP: #81207) * Add debian/local/ubuntu-bug.1: Manpage for ubuntu-bug. Add it to debian/apport.manpages. * qt4/apport-qt: Add some missing features that are present in the GTK UI: - Do not show details by default, add a button to show them. - Add complete/reduced bug report radio buttons. - Thanks to Michael Hofmann for this! -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 15 Feb 2007 14:59:07 +0100 apport (0.55) feisty; urgency=low * Add debian/local/ubuntu-bug: Check for a running KDE or Gnome session, availability of apport-gtk and -qt, and open the appropriate GUI in bug filing mode. This makes it convenient for shell users and is also required for proper Firefox 'Report a bug...' menu integration (see bug #85041). * debian/apport.install: Install ubuntu-bug to /usr/bin. * gtk/apport-gtk: Generously add some gtk.main_iteration() calls to avoid hanging dialogs, since we do not have a main loop. * apport/ui.py: Do not silently ignore exceptions while uploading data to Launchpad, but intercept them and display their message in the error dialog. (Part of LP: #84992) * apport/ui.py: Switch from edge.launchpad.net to production launchpad.net, since the necessary bits are now there. (LP: #84992) -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 14 Feb 2007 13:37:52 +0100 apport (0.54) feisty; urgency=low * bin/apport: Re-enable, now that our kernel has been fixed to pipe complete core dumps to us. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 13 Feb 2007 09:33:38 +0100 apport (0.53) feisty; urgency=low * apport/ui.py, open_url(): Remove some accidentally left-over debugging junk. * gtk/apport-gtk: Process pending GTK events after hiding the info collection window to avoid a hanging dead dialog. * gtk/apport-gtk: Do not count the lines of fields with binary data. This particularly avoids long delays with huge core dumps. (LP: #81979) * apport/ui.py, open_url(): Print URL to stdout, so that we can debug the weirdness in #83974. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 12 Feb 2007 16:57:05 +0100 apport (0.52) feisty; urgency=low * apport/report.py: Fix hook directory to be /usr/share/apport/package-hooks/, not /u/s/apport/. * Add doc/package-hooks.txt: Document per-package hooks, ship in package apport. * Add debian/apport.dirs: Ship package-hooks/ directory. * gtk/apport-gtk, qt4/apport-qt: Fix detection of binary data so that the CoreDump is not displayed as incomprehensible gibberish any more. * Add qt4/apport-qt.desktop.in and add it to POTFILES.in. * bin/apport-retrace: --verbose can now be specified multiple times to increase verbosity and debug package installation. Also, fix some quoting bugs. Thanks to Kees Cook for this! * qt4/apport-qt: Fix restart button handling. (LP: #84202) * qt4/apport-qt: Do not try to call splitlines() on a report value that is a file reference; just display the reference instead. (LP: #84196) * bin/apport: Disable for now, since the current kernel produces cropped core dumps and thus we get totally useless crash reports -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 9 Feb 2007 18:58:08 +0100 apport (0.51) feisty; urgency=low New feature: Qt4 GUI implementation: * Added qt4/: Qt4 implementation of the abstract user interface. Thanks to Michael Hofmann <mh21@piware.de> for that! * debian/copyright: Add Michael as copyright holder. * setup.py, debian/control, debian/apport-qt.install: Packaging bits for apport-qt. * Move translations from apport-gtk to apport, since they are shared between frontends. Add appropriate Conflicts/Replaces (we don't strictly need it here because we strip them anyway, but we need that for the moving icon anyway). * Move icon from apport-gtk to apport, since it is/can be shared between frontends. Improvements: * Replaced old apport.png icon stolen from bug-buddy with nice SVG one. Thanks to Troy Sobotka for this! * debian/copyright: Add Troy as copyright holder for the icon. * bin/apport-retrace, man/apport-retrace.1: Document that report can now be a LP bug number. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 8 Feb 2007 20:01:12 +0100 apport (0.50) feisty; urgency=low * gtk/apport-gtk.glade: Fix 'prolem' typo. * bin/apport-retrace: Use python-launchpad-bugs to create a Report object from a given Launchpad bug number (given as argument instead of the report file path). Add appropriate p-l-b dependency. * gtk/apport-gtk: Mark '(binary data)' string as translatable. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 8 Feb 2007 15:15:47 +0100 apport (0.49) feisty; urgency=low * gtk/apport-gtk.glade: Fix s/send/sent/ typo. Closes: LP#83061 * apport/ui.py, create_crash_bug_title(): Cope with odd Tracebacks that are shorter than three lines. Add test case from the bug. Closes: LP#83556 * apport/python_hook: Do not create a report if the binary is ignored. Add test case. Closes: LP#83566 * gtk/apport-gtk: Do not save/alter crash dialog title any more, it's empty now. * apport/ui.py, open_url(): Check the user's session for ksmserver/gnome-session to decide whether to prefer kfmclient or gnome-open. Also, only call Firefox directly if gconf's prefered browser is actually Firefox. Closes: LP#82007 -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 6 Feb 2007 18:33:15 +0100 apport (0.48) feisty; urgency=low New feature: Infrastructure for reporting kernel Oopses: * Add bin/kernel_hook and ship it in /usr/share/apport. The kernel can call this on an Oops. Add a test suite for it to test-hooks. * apport/ui.py: Add support for reporting ProblemType: Kernel reports, and add test suite for the workflow. * gtk/apport-gtk{,.glade}: Add implementation for ui_present_kernel_error(). Improvements: * Merged various apport-retrace improvements from Kees' branch: - Add various options to override some report fields with local values. - Add --verbose option and be quiet by default. - Read ProcMaps for additional library dependencies, to also catch libraries loaded at runtime (plugins). - Set correct debug file directory when starting an interactive gdb session with -g. * Add gtk/apport-gtk.desktop.in: Desktop file for calling apport-gtk in 'file a distro bug' mode, to be displayed in gnome-panel's System menu (see bug-reporting-tool spec). Also add a Makefile to do the intltool-merge dance, add it to POTFILES.in, and ship it in debian/apport-gtk.install. * bin/apport: Call add_os_info(), so that we get architecture information even for 'naked' reports which didn't go through UI enrichment. * Add ./test-hooks: Test suite for the various package hooks shipped with apport. Test the package problem hook for now. Bug fixes: * debian/control: Add missing python-apt dependency to apport (apport-retrace needs it). Thanks to Kees Cook for noticing. * debian/control: Add gdb dependency to python-apport. * backends/packaging-dpkg.py test suite: Verify that packages returned by get_dependencies() actually exist. This catches the 'chops off first letter of package name sometimes' bug. * backends/packaging-dpkg.py, _init_status(): Add missing space to Depends: field format in dpkg-query call. This fixes the chopped-off first letters in the 'Dependencies' report field. * setup.py: Remove version attribute, we do not update and use it anyway. * apport/ui.py: Do not crash if Package: specifies a nonexisting package. Display a proper error message instead. Add test_run_crash_errors() test case. * apport/report.py, add_package_info(): Fix crash when the first dependency is not installed. Closes: LP#82561 * gtk/apport-gtk.glade: Remove window titles in alert dialogs to comply with Gnome HIG. Closes: LP#83123 -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 5 Feb 2007 12:19:35 +0100 apport (0.47) feisty; urgency=low * apport/report.py, add_hooks_info(): Only use first part of 'Package:', there might be a version number and a changed files list which we must not propagate to the import statement. Closes: LP#82566 -- Kees Cook <kees@ubuntu.com> Wed, 31 Jan 2007 15:37:11 -0800 apport (0.46) feisty; urgency=low * debian/control: Bump dependencies to python-apport due to recent changes in expected return values in some UI functions. Closes: LP#82267 * bin/package_hook: Remove erroneous 'import apport.packaging', which shadows the packaging variable in the apport package. This unbreaks the package problem hook. Closes: LP#82297 -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 31 Jan 2007 07:51:24 +0100 apport (0.45) feisty; urgency=low New feature: Infrastructure for package install/upgrade failures: * Add bin/package_hook: Script for creating a report for a package installation/upgrade failure. It receives a package name, a number of log files, and an ErrorMessage: from stdin. This will be called from e.g. dist-upgrader. * setup.py, debian/apport.install: Ship package_hook. * apport/ui.py: If ProblemType is 'Package', call a new function self.ui_present_package_error() instead of presenting a crash. Add test suite checks for the package error report workflow. * apport/ui.py, create_crash_bug_title(): Create default bug title for package reports. Add various test cases. * gtk/apport-gtk{,.glade}: GTK implementation of ui_present_package_error(). New feature: Maintain a per-binary blacklist to inhibit apport crash reports until the binary changes. Closes: LP#79408 * apport/report.py: Add new Report methods check_ignored() and mark_ignore() to check for/set ignore list entries. Add test cases. * apport/ui.py: Add another return value of ui_present_crash() to specify whether or not to blacklist the current crash's executable. Check workflow of both responses in the test suite. * gtk/apport-gtk{,.glade}: Add a blacklist checkbox to the crash notification dialogs. * bin/apport: Do nothing if the current crash is blacklisted. * test-apport: Test blacklisting. Bug fixes: * gtk/apport-gtk: Fix return code for restarting the application ('reopen' -> 'restart'). Closes: LP#81422 * test-apport: Adapt to new core_pattern kernel interface mode: - Check core_pattern instead of the obsolete crashdump sysctl to determine whether or not apport is running. - Give apport max. 10 seconds to complete. The current kernel reaps the crashed process as soon as writing the core dump to the pipe is finished, but apport still needs to write the report file. - Do not EXFAIL the test for crashes in nonwriteable cwd any more, since it is now supposed to work (we do not write a core dump to the disk any more). * run-tests, use-local: Adapt to new core_pattern kernel interface. * apport: Improve logging of exceptions, include environment variables. * apport/report.py test suite: Use gdb to generate a test core dump, do not rely on kill(SIGSEGV) and the kernel to do it (since we now use a pipe in core_pattern). * backends/packaging-dpkg.py: Fix return value of get_modified_files() if dpkg .list file is missing. * apport/report.py, add_package_info(): Do not produce stray empty lines for uninstalled alternative dependencies. * apport/report.py: Fix test_add_gdb_info_script() to not leave behind a stray gzip process which randomly blocks stdin. Closes: LP#78421 * backends/packaging-dpkg.py: Do not read the dpkg status in the constructor, but lazily initialize it when actually calling a query function. This avoids imposing the dpkg-query overhead for programs that import the apport package without doing package queries (such as any Python program under Ubuntu, due to the Python crash hook). * apport/ui.py, create_crash_bug_title(): - Do not crash on an empty StacktraceTop. Closes: LP#81677 - Do not mention an unknown function name ('??') in the bug title; instead, use the topmost function with a known name, or leave it out at all. - Add test cases for these situations. * apport/report.py, _get_ignore_dom(): Do not throw an error for an empty ignore list file. Code cleanups: * apport/report.py test suite: Refactorize generation of test crash program and core dump generation. * Consistently use 'in'/'not in' instead of find() for substring searches. * Changed the packaging backend import, so that its methods can now be accessed at apport.packaging instead of apport.packging.impl. -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 28 Jan 2007 12:34:05 +0100 apport (0.44) feisty; urgency=low Some more 'Need for Speed' optimizations: * backends/packaging-dpkg.py, _check_files_md5(): Also accept a md5sum string in addition to a md5sum file. * backends/packaging-dpkg.py, get_modified_files(): Compare package file's ctime and mtime against the package list file's mtime and only md5sum the files that are newer. This drastically reduces the amount of md5suming (usually to zero) and thus speeds up the information collection. * backends/packaging-dpkg.py: Use a single hackish 'dpkg-query --show *' as a portable variant of 'cat /var/lib/dpkg/status' to pre-fill the status cache with all packages instead of calling dpkg -s on every single package we query. This changes the time for figuring out dependencies and their versions from 'unbearable for many packages' to 'barely noticeable'. New feature: per-package apport hooks to collect additional information: * apport/report.py: Add method add_hooks_info() which executes a function add_info(report) from /usr/share/apport/<package>.py. Also add appropriate test cases. This provides per-package hooks for apport. * apport/ui.py: Call add_hooks_info() in the information collection thread. Bug fixes: * apport/report.py: Add some more test cases for _check_interpreted() for Python scripts. * apport/python_hook.py: Check for a correct ExecutablePath in test_general(). * apport/python_hook.py: Use fileutils.likely_packaged() instead of checking for /tmp and home, so that we ignore stuff in /usr/local, too. Closes: LP#81244 * apport/python_hook.py: If we figure out an ExecutablePath which is not actually an executable, do not create a report. This particularly affects interactive python sessions where sys.argv[0] is empty and thus ExecutablePath ends up being the current directory. Add test cases. Closes: LP#81237 -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 24 Jan 2007 17:16:04 +0100 apport (0.43) feisty; urgency=low * apport/ui.py: Add method create_crash_bug_title() to construct a reasonable standard bug title for crash reports, so that the automatic duplicate detection actually has a chance to work. Also add test cases for various signal crashes and an unhandled Python exception. * apport/ui.py, file_report(): Submit a default bug title for crash reports. Closes: LP#79657 -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 23 Jan 2007 16:26:40 +0100 apport (0.42) feisty; urgency=low New feature: https://wiki.ubuntu.com/ApportImprovements (kernel interface change): * bin/apport: Support calling without arguments, to support new semantics agreed in the ApportImprovements spec: macro values (in particular, pid and signal number) are passed as environment variables. * preloadlib/libapport.c: Simulate new kernel behaviour described above. * debian/apport.init: Set the kernel's core_pattern sysctl to pipe to apport if the edgy-style 'crashdump-helper' sysctl helper does not exist. Bug fixes: * bin/apport-retrace: Beautify error message when report file is not accessible. Closes: LP#79568 * apport/ui.py: Fix crash in the bug pattern search thread if we could not determine a package name. Closes: LP#77872 * bin/apport: Only unlink the core dump if it still exists. Closes: LP#80866 * gtk/apport-gtk.glade: Fix expand/fill attributes so that the expander gets all the space when resizing the window. Closes: LP#80987 * problem_report.py, write_mime(): Make sure that multi-line values that go to the summary are terminated with a newline. * apport/ui.py: Fix error message invocation for reporting cloakroom upload failure. * problem_report.py, write_mime(): Fix off-by-one comparison of the 'inline text' treshold, so that apport's StacktraceTop field appears in bug summaries. Also fix a corner case in CR line ending handling. Check both things in the test suite. * gtk/apport-gtk: Add missing 'import subprocess.'. Closes: LP#81007 * debian/control: Bump apport's and apport-gtk's dependency to python-apport to make sure that apport.ui is available. Closes: LP#81019 * apport/ui.py: Add missing 'import pwd'. Closes: LP#81033 Minor improvements: * apport/ui.py: Get the cloakroom ticket number from the X-Launchpad-Blob-Token HTTP header instead of parsing the resulting page. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 23 Jan 2007 11:27:20 +0100 apport (0.41) feisty; urgency=low New feature: Use Malone cloakroom for uploading reports. Closes: LP#70919 * gtk/apport-gtk.glade: Redesign bug reporting dialog to have a 'Create bug report' and a 'Cancel' button. Also assign GTK_RESPONSE_* constants to the dialog buttons. Go back to Glade 2 since Glade 3 still sucks too much. * gtk/apport-gtk: Adjust workflow for sending report to Malone cloakroom instead of asking the user to attach the file. Sending is not yet implemented, though. * gtk/apport-gtk: Do not show any dialogs any more when filing a bug. * Add apport/MultipartPostHandler.py: This module provides an urllib2 opener for uploading file attachments to forms over HTTP POST. This module is (C) 2006 Will Holcomb <wholcomb@gmail.com> and was taken from http://odin.himinbi.org/MultipartPostHandler.py. (This is a serious hole of the Python standard library IMHO.) * apport/ui.py, file_report(): Upload blob to Malone (edge.launchpad.net for now), retrieve the ticket, and pass it to +filebug. Refactorizations: * gtk/apport-gtk: Major refactorization to use modal dialogs and run() instead of loosely coupled event handlers. * Add apport/ui.py: Abstract frontend which encapsulates the logic, workflow and UI independent bits and provides UI hooks for concrete implementations. This both makes it easy to write more frontends like Qt or CLI, and also makes the code automatically testable. Add an extensive testsuite. * run-tests: Add ui.py testsuite. * gtk/apport-gtk: Port to ui.py's UserInterface (which means moving 1/3 of the code into the new ui_*() methods and throwing away the rest). * Add apport/REThread.py: Enhanced threading.Thread class that can propagate the return value and uncaught exceptions of run() to the calling thread. * apport/ui.py: Get rid of thread_check_bugpatterns() and hackish exception handling, rewrite using REThread. * apport/ui.py, gtk/apport-gtk: Add progress bar to report upload. It is indefinite for now, because neither urllib2 nor httplib support upload progress. Bug fixes: * gtk/apport-gtk.glade: Merged Gnome HIG fixes from Sebastian Heinlein, thank you! * Merge patch from Sebastian Heinlein to properly treat the apport-gtk icon the dh_iconcache way and make it themeable. Thank you! * gtk/apport-gtk: Remove periods from primary dialog texts to comply with Gnome HIG standards. * backends/packaging-dpkg.py, get_file_package(): Process list files in chunks of 100, so that we do not exceed the maximum command line length if there is a large number of packages installed. Closes: LP#64839 * gtk/apport-gtk: Use pgrep with -u instead of pidof for testing whether the crashed process is already running again, so that we do not match processes of other users. Add procps package dependency for this. * gtk/apport-gtk: Only offer to restart programs that are in the $PATH. E. g. /usr/lib/firefox/firefox-bin cannot be called directly. Closes: LP#79623 * apport/report.py: Disassemble 16 instructions instead of 32 bytes to become independent of the instruction size. Thanks to Kees Cook for the patch! -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 22 Jan 2007 10:47:33 +0100 apport (0.40) feisty; urgency=low * debian/control: Add missing python-dev build dependency, which is apparently required for 2.5 now. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 15 Jan 2007 11:06:20 +0100 apport (0.39) feisty; urgency=low * Introduce abstract packaging interface and move all dpkg/apt specific bits to a dpkg implementation of this packaging interface (merge apport/abstract-pkg branch): - Add apport/packaging.py: Abstract packaging system query interface. - Add backends/packaging-dpkg.py: dpkg implementation of abstract packaging interface. - run-tests: Run tests of all backends. - apport/fileutils.py, apport/report.py: Port to packaging.py interface. - debian/control: Drop python-apport's 'python-apt' dependency since the backend only uses dpkg now (without measurable performance penalty since it uses internal caching). - debian/rules: Install backends/packaging-dpkg.py as our packaging backend to apport/packaging_impl.py and remove it again on clean. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 13 Jan 2007 15:53:08 +0100 apport (0.38) feisty; urgency=low * Add ./COPYING: GPL license. * debian/rules: Build POT file again. * apport/fileutils.py: Add get_all_system_reports() and get_new_system_reports() and added test cases. Now the test suite can also be run as root to be able to actually check their complete behaviour. Adapt the other tests to get along with running the tests as root. * bin/apport-checkreports: Add option --system to check for system crash reports. Closes: LP#62316 * gtk/apport-gtk: If called through sudo to process system crashes, drop privileges to the original user in open_url() so that we get the web browser correctly. (LP#62316) Caveat: The user cannot actually attach the crash report file directly since it is not accessible to the user; this will get fixed once Malone is able to link a bug report with uploaded blobs. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 12 Jan 2007 14:29:44 +0100 apport (0.37) feisty; urgency=low * problem_report.py: Remove the requirement that values must not contain empty lines. Add test cases that reading and writing values with empty lines works, and add a test case that load() properly complains about empty lines in debcontrol encoding (empty lines in values are encoded with a single space). Closes: LP#78094 * apport/report.py test suite: Do not rely on a particular structure of the 'cat' stacktrace; apparently this is not consistent across architectures. Instead, compile a segfaulting mini C program, let it dump core, and test add_gdb_info() on it instead. This also allows us for a more rigid check of StacktraceTop. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 8 Jan 2007 14:44:08 +0100 apport (0.36) feisty; urgency=low * gtk/apport-gtk.glade: Restore pulse step of progress bar (this apparently got destroyed when saving with Glade 3). * gtk/apport-gtk{,.glade}: Terminate the program properly when closing the progress dialog instead of exiting with an exception. * gtk/apport-gtk: Defer opening of the bug reporting window a bit so that it appears on top of the browser window. Also enable the task bar blinking for it when it is in the background. * gtk/apport-gtk.glade: Restore vertical padding of bug report dialog labels (another Glade 3 transition regression). * bin/apport-retrace, apport/report.py: Call gdb on InterpreterPath if present; calling it on a script does not yield anything useful. Add a test case to report.py. * debian/apport.init: Use mkdir -p instead of install -d, since install is not in /bin. Thanks to Kees Cook for catching this. * debian/control: Add missing python-apport dependency 'python-apt', which is not caught by ${python:Depends}. * gtk/apport-gtk: Catch MemoryError when loading a report and display an error dialog instead of just crashing. Closes: LP#76235 * gtk/apport-gtk: Properly catch exceptions from the bug pattern check thread to avoid useless backtraces like in bug #75160. * gtk/apport-gtk: Catch exceptions from decoding of damaged reports and display an error message instead of crashing. Closes: LP#77149 * apport/report.py: Add missing import of 'time' to test suite. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 5 Jan 2007 09:49:01 +0100 apport (0.35) feisty; urgency=low Optimizations: * apport/fileutils.py: Split out heuristics for determining whether a file belongs to a package to new function likely_packaged() and add test cases. * bin/apport: Do not use the expensive find_file_package() any more, use likely_packaged() instead. This will create initial reports in some corner cases (like custom non-packaged executables in /usr/bin/), but greatly reduces I/O impact at crash time. We rely on apport-gtk to deal with reports that do not actually belong to a packaged executable. * apport/report.py, add_gdb_info(): Call gdb just once and split the output instead of calling it again for each command. This should significantly speed up the gdb stage especially for large programs/core dumps. * Use cStringIO instead of StringIO in modules. * gtk/apport-gtk: Code cleanup and refactorization: - Move iteration over crash reports into __main__ to simplify housekeeping in the ApportGTK class and get rid of some functions. - Refactor creation of temporary report file. * gtk/apport-gtk.glade: Split the text in the progress bar dialog so that we can use it for multiple steps (like uploading data to Malone) while not breaking translations. New feature: Bug reporting tool (https://wiki.ubuntu.com/BugReportingTool) * gtk/apport-gtk: Split out crash report initialization to new function show_crashes() so that we can use the frontend for other purposes like bug reporting. * gtk/apport-gtk: Add --file-bug, --package, and --pid options; if given, create a bug report about the given package instead of viewing crash reports. * gtk/apport-gtk{,.glade}: Generalize some strings to not talk about 'crash' any more, to make them suitable for bug reporting, too. * gtk/apport-gtk: Support --file-bug without specifying a package or a PID for filing generic distro bugs. * problem_report.py: Add new method write_mime() to encode a problem report in MIME/Multipart RFC 2822 format (i. e. an email with attachments). Short values are aggregated into the first inline text/plain part, large values, binary values, and file references get gzip compressed separate attachments. Also add various test cases. Bug/crash information: * apport/report.py, add_user_info(): Add list of system groups that the user belongs to. * bin/apport: Call add_user_info(), check functionality in test-apport. * apport/report.py, add_gdb_info(): Add field 'StacktraceTop' with the top five functions on the stack and no local variables. This reduced 'glimpse' is suitable for inline display in bug reports and automatic processing (dup finders, etc). Bug fixes: * po/Makefile: Add top_srcdir to work with current intltool. * po/de.po: Unfuzz some strings. * apport/report.py, add_gdb_info(): Strip away the 'No symbol table info available' messages from stack traces. * apport/report.py, test_search_bug_patterns(): Use security.u.c. instead of archive.u.c., since the latter times out too often. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 3 Jan 2007 16:45:20 +0100 apport (0.34) feisty; urgency=low * apport/fileutils.py, mark_report_seen(): Do not bail out if os.utime() fails due to access permissions. This happens if the file does not belong to the user calling apport-gtk, but is world-readable (such as ubiquity crash reports). If utime() fails, repeatedly open()/close() the file for reading until atime != ctime, or the 1.2s timeout is reached. Closes: LP#72250 * apport/python_hook.py: Add unit test, call that in run-tests. * apport/python_hook.py: Chmod the generated report to 0600 to not expose potentially private data to the world, and to be consistent with other crash reports. * apport/fileutils.py: Add check_files_md5() and test cases. * apport/report.py, add_package_info(): Append list of modified package files to Package: and Dependencies: value. Closes: LP#70946 * bin/apport-retrace: Get along with Package:/Dependencies: fields with list of modified files. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 22 Dec 2006 12:40:55 +0100 apport (0.33) feisty; urgency=low * debian/rules: Convert to cdbs. This fixes the dh_pysupport invocation along the way, too. * gtk/apport-gtk: Rework web browser invocation: Use kfmclient if available, fall back to firefox-remote, then to webbrowser.open(). Do not call x-www-browser any more since this would block if no running browser was open before. * Drop the apport_utils module (and with it the python-apport-utils package), it became too much of a dumping ground. The report file handling functions now live in apport.fileutils, and the debugging information collectors are now methods of a new 'Report' class (subclass of ProblemReport) in the new apport.report module. Adjust all programs accordingly. * Add debian/python-apport.postinst: Remove old .pyc and .pyo cruft on upgrades to clean up after our broken dh_pysupport invocation in earlier versions, so that the new modules are actually used. * Remove debian/apport.postinst: Those cleanups were only necessary for intra-edgy upgrades. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Dec 2006 01:15:27 +0100 apport (0.32) feisty; urgency=low * apport_utils.py: Filter out "no debugging symbols found" warnings from gdb outputs, and add some tests for this. Thanks to Kees Cook for the patch! * test-apport: Fix AGENTPATH directory when building the preload library (recently moved to bin/). * use-local: Fix path to apport as well (recently moved to bin/). * apport-retrace: Use ldd on InterpreterPath if present; ldd'ing scripts will not get us very far. Closes: LP#72201 -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 14 Dec 2006 13:42:58 +0100 apport (0.31) feisty; urgency=low * Move scripts to bin/ in source package. * Add apport/python_hook.py: Default exception handler for Python, to create apport reports for unhandled exceptions. Thanks to Robert Collins <robert@ubuntu.com> for this! Closes: LP#70957 * Add new package python-apport to ship the new Python package 'apport'. This includes the python crash hook for now, but in the near future apport-utils will get redesigned and put into this package, too. * debian/control: apport now depends on python-apport instead of python-apport-utils. * apport_utils.py: Quiesce gdb error messages in test suite. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 25 Nov 2006 12:30:41 +0100 apport (0.30) feisty; urgency=low * test-apport, use-local: Support both kernel 2.6.17 and 2.6.19 sysctl names (crashdump-helper vs. crashdump). * gtk/apport-gtk.glade: Improve dialog title capitalization. Closes: LP#70652. * debian/apport.cron.daily: Immediately exit if /var/crash does not exist. Create /var/crash in debian/apport.init if it does not exist. Closes: LP#71599 * Convert all tabs in Python source code files to spaces to comply to PEP 8. Thanks to Robert Collins for pointing this out. * apport_utils.py, gtk/apport-gtk: Do not pass None to subprocess arguments if report belongs to a non-packaged program. Thanks to Robert Collins for discovering and fixing this! Closes: LP#70942 * debian/apport.init: Change /var/crash permissions to 1777, so that custom crash handlers (in Python/Mono/etc.) can put reports there. -- Martin Pitt <martin.pitt@ubuntu.com> Sat, 25 Nov 2006 10:44:33 +0100 apport (0.29) feisty; urgency=low * apport-retrace: Do not crash if a linked library is not a dependency. Closes: LP#65914 * apport_utils.py: - Add test_find_file_package_diversion() selftest to check diversion handling. - find_file_package(): Check for and respect diversions. - Closes: LP#65917 * debian/apport.init, test-apport, use-local: Adapt to 'crashdump-helper' -> 'crashdump' sysctl renaming in 2.6.19. * test-apport: Restore cwd even when failing a test. * problem_report.py, ProblemReport.write(): Support file-like objects as argument of file references to support direct reading from pipes. Add test case test_write_fileobj(). * apport: Support '-' as core file argument, in which case the core will be read from stdin. This paves the way for using Linux 2.6.19's 'pipe core_pattern' feature. Bump python-problem-report dependency to >= 0.29 for this. * apport: Confine permissions of log file to root:adm 0640, just in case. * apport: Temporarily drop real u/gid to target user for the os.access() tests, so that normal users cannot verify the existence of a given inaccessible file. Add comprehensive tests to apport_utils' test suite and test-apport. Thanks to Kees Cook for this patch! * apport_utils.py, find_file_package(): Terminate fgrep options with '--' to avoid problems with funny file names. Thanks to Kees Cook for spotting this! * test-apport: Automatically detect whether ULIMIT_CORE is nonzero, and adapt tests accordingly: check that core still exists after invoking apport, and clean it up. * apport-retrace: Add new mode -g/--gdb which starts an interactive gdb session with the report's core dump. Add this to man/apport-retrace.1, too. * apport-retrace: If -c is given, completely remove the CoreDump field from the report instead of setting it to 'removed'. * test-apport: When using 'lib' mode, point APPORT_LOG_FILE to a temporary file. Print it if the test suite fails. * test-apport: Fix EXFAILure of the 'core dump works for non-writable cwds' test case. * preloadlib: Support -DPIPE_CORE mode which emulates the pipe-in-core_pattern mode of kernel 2.6.19. * test-apport: Build preload library with core piping. No more failed test suite checks in 'lib' mode. -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 5 Nov 2006 07:10:30 -0800 apport (0.28) edgy; urgency=low "No core - ignore!" * apport: Do not create a report for crashes which we do not get a core dump for. The reports are useless and only clutter our bug tracker. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 9 Oct 2006 15:22:32 +0200 apport (0.27) edgy; urgency=low * apport: Ignore SIGABRT for now; it's usually signalled from abort() or assertion failures and we only get reports with unusable stack traces for it (see #61938). * gtk/apport-gtk: If gnome-open is not available, fall back to x-www-browser instead of using webbrowser.py, to respect default browser in XFCE. Closes: LP#64209 * apport: use os.nice() instead of executing 'renice'. Thanks to Benoit Boissinot for noticing. * apport_utils.py, find_file_package(): Lower() both strings in the speedup heuristics to match e. g. /usr/bin/Xorg -> xserver-xorg. Thanks to Kees Cook! * apport_utils.py, report_add_package_info(): Do not crash if we encounter a 'None' current version, which can happen with uninstalled alternative dependencies. Thanks to Kees Cook for tracking this down! -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 6 Oct 2006 17:15:08 +0200 apport (0.26) edgy; urgency=low * apport-retrace: Clean up code a bit: - Move option parsing to separate function. - Use apport_utils' report_add_gdb_info() instead of duplicating the gdb code. * apport_utils.py, report_add_gdb_info(): Add optional parameter 'debugdir' to specify an alternate debug file symbol root directory. * apport-retrace: Add option -d/--download-debug to automatically download available ddebs, create a temporary debug symbol directory from already installed and downloaded ddebs, and point gdb to use that. Also add option -C/--cache-dir to specify a permanent ddeb cache directory (by default, a temporary one is used). Update the manpage accordingly. * apport-retrace: Make the best out of a report without packaging information (which can happen if the user does not click on 'report bug' in apport-gtk). * apport_utils, report_add_proc_info(): - Move heuristics for detecting interpreted scripts to a separate function to be able to provide separate test cases for it. Check a few more special cases for mono programs. - Make interpreter heuristics even scarier to detect some more mono corner cases (like banshee and beagled-helper). Closes: LP#58859 -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 4 Oct 2006 19:10:47 +0200 apport (0.25) edgy; urgency=low * Drop apport-gtk's update-notifier dependency to a Recommends:. * apport_utils.py, report_add_gdb_info(): Add register dump and disassembly of the last 32 bytes, they might be useful to see what's going on sometimes. Thanks to Kees Cook for the idea and the patch. * test-apport, check_crash(): Verify that a crash does not leave a core file behind. (Test for LP#62972) * preloadlib/libapport.c: Do not unlink the core file after calling apport, but set REMOVE_CORE=1 environment instead. This matches the current kernel behaviour. * apport: Register an atexit handler as early as possible for unlinking the core dump if REMOVE_CORE environment is set. Closes: LP#62972 * apport: Set nice level 10 instead of 5. Closes: LP#63099 -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 2 Oct 2006 14:21:53 +0200 apport (0.24) edgy; urgency=low The "Need for speed" release -- rrrroarrr! * apport: Remove _copy_shrink_corefile(): While this has an enormous impact on the size of an uncompressed core dump, it only causes a negligible size reduction of the bzip2'ed core, but it needs a lot of I/O resources for large core dumps. * problem_report.py: - Use zlib instead of bzip2 for compressing the binary data (in particular, core dumps). This results in slightly bigger files, but speeds up compression a lot (30 seconds vs. ~2:45 minutes for a Firefox core dump on my slow iBook). Closes: LP#61538 - ProblemReport.read(): Support both bzip2 and zlib compression to be able to read existing reports, too. - Add/Adapt test cases. * Move InformationCollector._get_gdb() from apport to apport_utils.py report_add_gdb_info(), and add a test case for it. * apport_utils.py, report_add_package_info(): Support calling without a package name, then it will be figured out from ExecutableName. Extend test case accordingly. * test-apport: Do not require apport reports to contain gdb, packaging, and OS information, since we are going to move them out of apport. * apport: Do not collect static information. It requires a lot of CPU and I/O resources and slows down the machine a lot, and it can be added to the report later in the frontend. This also gets rid of the entire InformationCollector class, since everything has been moved to apport_utils.py now. Closes: LP#62542 * apport: Do not intercept KeyboardInterrupt as unhandled exception (only useful for command line debugging, though). * problem_report.py: Add test case for appending new data to an existing report, fix write() function to not rely on an existing ProblemType key. * problem_report.py: Add new method ProblemReport.add_to_existing() to update an already existing problem report with new data. Add test case. * apport_utils.py, mark_report_seen(): Use os.utime() instead of open()/read() and a timeout for simpler and faster operation. * gtk/apport-gtk: - Collect gdb/packaging/operating system information when the user chooses to file a bug and update the apport report. - Change the 'Downloading bug patterns...' progress dialog to 'Collecting information about the crash...'. * debian/control: Bumped library dependencies of apport-gtk, added update-notifer dependency. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 29 Sep 2006 15:47:56 +0200 apport (0.23) edgy; urgency=low * apport: Reset signal handler to SIG_IGN in the crash signal handler, to avoid an endless crash/handler loop (noticed during debugging LP#61708). * debian/apport.init: Do not let the script run with set -e, so that do_{start,stop} can deliver their return codes for proper evaluation, instead of immediately existing. Closes: LP#61796 * test-apport: Check that SIGQUIT does not generate a report. (Check for bug #62511). * apport: Ignore SIGQUIT. Closes: LP#62511 -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 28 Sep 2006 20:57:38 +0200 apport (0.22) edgy; urgency=low * apport_utils.py, report_add_proc_info(): Make 'interpreted script' detection more general to also work for mono programs. * test-apport: Check that non-packaged scripts do not generate a report. * apport: Call ic.collect_runtime_information() earlier and drop the local /proc/pid/exe examination, so that we get proper script detection. This avoids getting crash reports for non-packaged scripts (see test case change from above). * apport: Do not try to chmod the report file if we could not create it and output to stderr instead (this mainly affects local testing only). * apport_utils.py, find_file_package(): First grep the package lists whose names are a substring of the crashed binary name (or vice versa), to immensely speed up the package name determination in many cases. * apport: Drop the maximum number of consecutive crashes per executable from 5 to 2. 5 creates a too bad user experience and creates the impression that it will never stop. Closes: LP#61078 -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 19 Sep 2006 16:16:46 +0200 apport (0.21) edgy; urgency=low * apport: Keep a partially written report with '000' permissions, and only chmod it to 0600 when it is fully written. This stops update-notifier from picking up half-written reports and get activated several times. Closes: LP#59988 * apport: Add the executable path to the first line of logging. * apport: Run the complete code under control of the general exception fallback handler. * debian/apport.default: Increase maximum core size to 200 MB, to also catch Firefox and Evolution core dumps. * apport_utils.py, find_file_package(): Before searching the dpkg database (which is expensive), check if the executable path matches a whitelist of path prefixes. This replaces the weaker blacklist (/tmp and /home) in apport itself. * gtk/apport-gtk: Show a progress dialog while checking for bug patterns and execute report_search_bug_patterns() in a separate thread, so that the UI is not potentially blocked for a long time. * apport: Gracefully abort if we cannot readlink /proc/pid/exe, instead of falling over with an exception. Closes: LP#59993 * debian/rules: Use 'multiuser' instead of 'defaults' for dh_installinit. Clean up the unnecessary rc symlinks in postinst and add appropriate sysv-rc dependency. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 14 Sep 2006 23:16:26 +0200 apport (0.20) edgy; urgency=low * apport: Renice ourself to priority 5 to not slow down the user's processes so heavily. * Add manpages for apport-retrace(1) and apport-unpack(1) and install them into apport. Closes: LP#58463 * problem_report.py: Test attaching two files instead of one in the test_write_file() regression check to assert correct key sorting. * problem_report.py: Alter write() method to sort binary data to the end of the report. This makes reports easier to read, and also shows relevant information more quickly when progressively loading them in a web browser. Adapt regression tests accordingly. * Move setting of ExecutablePath from apport's InformationCollector ctor to apport_utils' report_add_proc_info(), where it belongs to. Check ExecutablePath in apport_utils' regression tests. * apport-unpack: Support '-' as report argument to read from stdin. * apport_utils.py, report_add_proc_info(): - Apply some heuristics to determine whether the crashed process is an interpreted script (check if the Name in /proc/pid/status matches the second /proc/pid/cmdline part, and if that command line argument is an existing executable file). In the case of an interpreted script, set ExecutablePath to the script and InterpreterPath to the actually crashed ELF binary. - Test this with a shell (/bin/zgrep) and a Python (./apport-unpack) script in the test suite. - Closes: LP#58859 * Add debian/apport.logrotate to add a daily 7-step /var/log/apport log rotation. * test-apport: Fix WCOREDUMP() and pidof checks in check_crash(). * apport: Install a signal handler for all 'crashy' signals, which just logs the signal and stack info and exits. This should avoid a crashing apport examining itself, possibly in an endless loop. Closes: LP#58873 -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 11 Sep 2006 09:20:18 +0200 apport (0.19) edgy; urgency=low * apport_utils.py: Add function report_search_bug_patterns(): Try to download a package specific bug pattern XML file from a given URL base directory and return the bug URL in case of a match. Also add extensive test suite check. * test-apport: Fix help message. * apport-gtk: Make use of the new report_search_bug_patterns() function and display appropriate instructions on match. Bump python-apport-utils dependency. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 5 Sep 2006 11:31:17 +0200 apport (0.18) edgy; urgency=low The "mating dance for ubiquity" release. * apport-gtk: - Use pidof's -x option in the detection whether the program is already running to correctly handle scripts. - Do not assume the presence of the ExecutablePath key in reports, but gracefully fall back to Package. - If the report specifies an explicit DesktopFile, use that instead of trying to figure it out. - Only created reduced report and show the radio buttons if there are actually removed fields. - Change tooltip of 'reduced report' radio button to be more generic (do not refer to the memory dump, but to 'large items', since this is what apport-gtk currently does). - Support new field 'BugDisplayMode: file | list (default)'. In 'file' mode, display the /+filebug page instead of /+bugs and change instructions accordingly. - Use the ProcCmdline attibute to restart an application; correctly parsing of all the desktop file is just not possible at this point. - Support new field 'RespawnCommand' to use custom respawning command. * problem_report.py: Add method has_removed_fields() to check whether load() skipped any fields due to binary=False. Add test suite check. * apport_utils.py: Fix the quoting in ProcCmdline so that it is fully shell compatible. * run-tests: Check if kernel crash dump helper is active, and if so, run test-apport in kernel mode. * problem_report.py: Support an optional second argument of file references which controls whether or not the file contents will be compressed/encoded (defaults to True for backwards compatibility). Add test suite checks. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 25 Aug 2006 14:01:47 +0200 apport (0.17) edgy; urgency=low * Move packaging information collection from apport to new function report_add_package_info() in apport_utils.py, add test suite check. * Move operating system information collection from apport to new function report_add_os_info() in apport_utils.py, add test suite check. * Move /proc information collection from apport to new function report_add_proc_info() in apport_utils.py, add test suite check, and fix handling of failed /proc/$$/environ reading. * preloadlib/libapport.c: Route gcore's stderr to /dev/null to suppress error messages during the test suite and to become more compatible to the kernel behaviour. * Change apport_utils.py to be a public module and ship it in the new python-apport-utils package, so that other applications like ubiquity can use it easily. * po/de.po: Add new translations to make this complete again. * problem_report.py, apport_utils.py: Prepend UnitTest classes with '_' so that they do not appear in the help() output. * apport_utils.py: Add make_report_path(), which constructs the canonical crash report pathname for a given report. * Add debian/apport.postinst: Remove /usr/share/apport/apport_utils.pyc when upgrading from an earlier version, so that the programs in /usr/share/apport actually use the version from p-apport-utils. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 22 Aug 2006 18:14:00 +0200 apport (0.16) edgy; urgency=low * test-apport: Check that non-packaged binaries do not generate a report. * apport_utils.py: Add find_file_package() to find the package a file belongs to. This uses fgrep /var/lib/dpkg/info/*.list which is much faster than dpkg -S. Also add test suite check. * apport: Use find_file_package() instead of direct dpkg -S call and pass the result to the InformationCollector ctor to avoid grepping the dpkg lists twice. * apport: Immediately exit if the executable name starts with /home or /tmp, to avoid grepping the dpkg database in the common developer case. * apport: Replace 0-bytes in ProcCmdline with spaces to keep them readable. * apport-gtk: Offer an alternative small report (without the core dump) for users with slow internet connection. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 21 Aug 2006 19:34:47 +0200 apport (0.15) edgy; urgency=low * Add apport-unpack: Script to extract the fields of a problem report into separate files into a new or empty directory. Mainly useful for extracting compressed binary data like the core dump. * test-apport: Check that dumped environment only contains security insensitive variables. * apport: Filter out all environment variables but $SHELL, $PATH, and locale/language related ones. Closes: LP#56846 * test-apport: Delete test report in the cleanup handler so that the kernel-mode test can be run multiple times without manual cleanup. * test-apport: Check for running apport and test executable processes in check_crash(). * preloadlib/libapport.c: Improve error checking, some robustification. * test-apport: If using the preload library, wait a second between the test process invocations in the flooding test to mitigate a strange race condition that sometimes causes the signal handler not to be executed. -- Martin Pitt <martin.pitt@ubuntu.com> Sun, 20 Aug 2006 16:28:43 +0200 apport (0.14) edgy; urgency=low * preloadlib/libapport.c: Write core dump into cwd instead of /tmp to act like the current kernel. * apport_utils.py: Check APPORT_REPORT_DIR environment variable for an alternate crash report directory. This is mainly useful for a local test suite. * apport: Quiesce the apt module's FutureWarning. * preloadlib/libapport.c: Re-raise the signal instead of doing exit() so that the process exits with the same code as it would do without the library. * preloadlib/libapport.c: Close stdout for gcore process. * Add test-apport: Use preloadlib/ and APPORT_REPORT_DIR to create a sandboxed environment and run various apport functionality tests. Also add this script to run-tests. * apport_utils.py, delete_report(): Actually try to unlink the report before falling back to truncating it to zero bytes. * preloadlib/libapport.c: Close stderr for apport process. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 18 Aug 2006 15:46:37 +0200 apport (0.13) edgy; urgency=low * Do not run the test suite on build since on the buildds modifying file atimes does not work. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 18 Aug 2006 00:59:26 +0200 apport (0.12) edgy; urgency=low * apport-gtk: Make bug report window resizable when the details are expanded. Closes: LP#56672 * apport_utils.py: Add get_recent_crashes() and a test suite check for it. * apport: If the same binary produced more than 5 crashes in the last 24 hours, ignore the crash. This is a hideous and pretty ad-hoc band-aid to avoid flooding users with reports for continuously crashing respawning processes. Closes: LP#56362 * apport: Clean up exit codes to only exit with 0 if report was created, and with 1 otherwise (to become more compatible to proposed future kernel behaviour, where core dumps are only generated on demand). * Add run-tests script which calls all available selftests. * debian/rules: Run run-tests during build to have the package FTBFS on regressions. Add python build dependency for this (it is already there implicitly anyway). -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 17 Aug 2006 16:06:41 +0200 apport (0.11) edgy; urgency=low * gtk/apport-gtk.glade: Remove separators from dialogs. Closes: LP#56326 * apport: - Move information collection from ctor to two new separate functions collect_runtime_information() (fast, privileged, crashed process must exist) and collect_static_information() (slow, unprivileged, crashed process does not need to exist). This allows a cleaner design. - Add missing close() call in init_error_log(). - Do not catch SystemExit in the final catch-all-and-log clause (will become important once we switch to master/slave processes). - Clean up handling of temporary files. - Log successful report creation with file and package name, to ease debugging. - transitive_dependencies(): Do not break on pure virtual dependencies (like perl-api-XXX). * Add debian/apport.default: Default file to disable apport entirely and to change the maximum size of kernel created core dumps. * debian/apport.init: Evaluate new default file. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 16 Aug 2006 17:05:19 +0200 apport (0.10) edgy; urgency=low * apport-gtk: Show report file size in bug report window. * apport: Correctly handle relative paths to core dumps (use crashed process' cwd). * Fix the GPL URLs in source file's copyright comments. * debian/apport.cron.daily: Add -mindepth 1 to find commands to avoid attempting to remove the /var/crash/ directory. Closes: LP#55107 * problem_report.py: - Fix precise whitespace handling in continuation lines, add selftest. - Add selftest for reading a report, modifying fields, and writing it back. - Fix writing back binary data, adapt test suite to check it. - Fixed ProblemReport.load() to clean up old data, added selftest. - Restructure class to inherit from IterableUserDict and throw away all the now obsolete dictionary wrapper methods. * debian/apport.init: Add colon to description to make output less confusing. * Add apport-retrace and install it into apport: This tool takes a crash report and refreshes the stack traces in it. This is particularly useful if debug symbols are installed now, but haven't been at the time the crash occured. -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 11 Aug 2006 15:40:05 +0200 apport (0.9) edgy; urgency=low * apport: Call objcopy to throw out READONLY/CODE sections from the core dump, which drastically reduces its (uncompressed) size (factor 2 to 10). This has little effect on the bzip2'ed core dump, though. * apport: - Support an optional third command line argument which specifies the location of a core dump. - If a core dump is given, call gdb on the core dump instead of the crashed process. We cannot attach to the latter if we are called by the kernel (since the crashed process is in uninterruptible kernel sleep). - If no core dump is given, do not attempt to do anything gdb related. - This matches the future behaviour of the kernel crash dump helper while remaining compatible to the previous call semantics. * Add preloadlib/{Makefile,libapport.c}: LD_PRELOADable library which emulates the future kernel behaviour. This is ONLY for testing and development purposes. It uses unsafe temporary file handling and thus must not be used on production boxes! * Ship preloadlib/* as examples in package 'apport' for people who want to play with it until the new kernel arrives. * Add preloadlib/README: Explain how to use the preload library. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 9 Aug 2006 12:12:20 +0200 apport (0.8) edgy; urgency=low * apport_utils.py: - Add two new functions seen_report() and mark_report_seen(). - get_new_reports(): Only return unseen reports, add function get_all_reports() for the old behaviour. * gtk/apport-gtk.py: Do not delete reports after notifying about them. This way, we do not need to add another button to save the report (which is considered evil UI-wise), but still retain the report for filing and examining later. * Replace all usages of '/var/crash' to a new global variable in apport_utils; this is particularly useful for test suites. * apport.py: Overwrite old reports if they are seen. * apport_utils.py: Add a test suite for all exported functions. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 8 Aug 2006 19:29:23 +0200 apport (0.7) edgy; urgency=low * Add apport_utils.py: Factorize out some common code of apport-gtk, possible future frontends, and some backend tools. * Add apport-checkreports: Test if there are new crash reports for the invoking user. This factorizes out the tests we currently do in update-notifier and makes them easier to change and keep in sync with apport itself. Ship the script in the apport package. -- Martin Pitt <martin.pitt@ubuntu.com> Tue, 8 Aug 2006 17:24:46 +0200 apport (0.6) edgy; urgency=low * Add missing intltool build dependency to fix FTBFS. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 3 Aug 2006 09:15:42 +0200 apport (0.5) edgy; urgency=low * apport-gtk: Remove the crash report after it got displayed. * apport-gtk: Fix exception on startup if no readable crash reports exist. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 2 Aug 2006 23:42:34 +0200 apport (0.4) edgy; urgency=low * Implement completely new UI according to the design described at https://wiki.ubuntu.com/CrashReporting. Many thanks to Matthew Paul Thomas! * po/Makefile: Fix default target to not just break. Now it builds the .pot file. * debian/rules: Build .pot file on package build for automatic Rosetta import. * Bring German translations up to date. * po/Makefile: Supply '--language=python' to intltool-update to properly extract strings from apport-gtk. -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 2 Aug 2006 23:14:58 +0200 apport (0.3) edgy; urgency=low * debian/rules clean: Also clean po/. * debian/apport.cron.daily: Clean away empty files everytime. * apport: Only consider a report as already present if it has a non-zero size. * apport: Set proper group for report files instead of 'root'. * apport-gtk: Ignore 0-sized reports. * apport-gtk: Add button to remove the current report (by truncating the file to zero bytes; a user cannot unlink files in /var/crash). * apport-gtk: Only display reports that the user can actually read. * problem_report.py: Add 'binary' option to ProblemReport.load() to optionally skip binary data. * debian/rules: Clean stale *.pyc files. * python-gtk: Do not load binary data (core dumps, etc.) to greatly speed up the GUI. They are just gibberish anyway. * apport: Switch from apt_pkg to apt, add SourcePackage: to reports. * apport-gtk: Use source package name for the Malone URL. * debian/rules: Call setup.py install with --no-compile to not ship *.pyc in debs. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 31 Jul 2006 13:11:52 +0200 apport (0.2) edgy; urgency=low * debian/apport.cron.daily: Do not produce error messages if 'find' does not find any crash reports. * problem_report.py: Support iterators, add test case. * apport: Filter out trailing 0-byte from ProcCmdline. * Add a simple GTK frontend, ship it in new package apport-gtk. -- Martin Pitt <martin.pitt@ubuntu.com> Thu, 27 Jul 2006 23:52:33 +0200 apport (0.1) edgy; urgency=low * Initial release. This package implements the client backend part of https://wiki.ubuntu.com/AutomatedProblemReports. -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 24 Jul 2006 14:21:10 +0200 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/clean�������������������������������������������������������������������������0000664�0000000�0000000�00000000057�13562354544�012316� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������debhelper/dh_apport.1 apport/packaging_impl.py ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/compat������������������������������������������������������������������������0000664�0000000�0000000�00000000002�14416105132�012467� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������9 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/control�����������������������������������������������������������������������0000664�0000000�0000000�00000014676�14416106601�012714� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Source: apport Section: utils Priority: optional Build-Depends: debhelper (>= 9), dh-translations, dh-systemd, gdb, python3-gi, gir1.2-glib-2.0 (>= 1.29.17), lsb-release, net-tools, python3-all Build-Depends-Indep: python3-distutils-extra (>= 2.24~), python3-apt (>= 0.7.9), python3-requests-unixsocket, dh-python, intltool, xvfb, python3-mock, procps, psmisc, gir1.2-gtk-3.0 (>= 3.1.90), gir1.2-wnck-3.0, pycodestyle | pep8, pyflakes, xterm, dbus-x11, gvfs-daemons, libglib2.0-dev, libc6-dbg | libc-dbg, default-jdk | java-sdk Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Standards-Version: 3.9.8 X-Python3-Version: >= 3.0 Vcs-Browser: https://code.launchpad.net/~ubuntu-core-dev/ubuntu/+source/apport/+git/apport Vcs-Git: https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/apport -b ubuntu/focal Homepage: https://wiki.ubuntu.com/Apport Package: apport Architecture: all Depends: python3, python3-apport (>= ${source:Version}), lsb-base (>= 3.0-6), python3-gi, gir1.2-glib-2.0 (>= 1.29.17), ${misc:Depends} Recommends: apport-symptoms, python3-systemd Suggests: apport-gtk | apport-kde, policykit-1 Replaces: python-apport (<< 2.2-0ubuntu1), core-dump-handler Breaks: python-apport (<< 2.2-0ubuntu1) Conflicts: core-dump-handler Provides: core-dump-handler Description: automatically generate crash reports for debugging apport automatically collects data from crashed processes and compiles a problem report in /var/crash/. This utilizes the crashdump helper hook provided by the Ubuntu kernel. . This package also provides a command line frontend for browsing and handling the crash reports. For desktops, you should consider installing the GTK+ or Qt user interface (apport-gtk or apport-kde). Package: python3-problem-report Section: python Architecture: all Depends: ${python3:Depends}, ${misc:Depends} Description: Python 3 library to handle problem reports This Python library provides an interface for creating, modifying, and accessing standardized problem reports for program and kernel crashes and packaging bugs. . These problem reports use standard Debian control format syntax (RFC822). Package: python3-apport Section: python Architecture: all Depends: ${python3:Depends}, python3-apt (>= 0.7.9), python3-httplib2, python3-problem-report (>= 0.94), python3-requests-unixsocket, lsb-release, python3-launchpadlib, ${misc:Depends} Recommends: apport Description: Python 3 library for Apport crash report handling This Python package provides high-level functions for creating and handling apport crash reports: . * Query available and new reports. * Add OS, packaging, and process runtime information to a report. * Various frontend utility functions. * Python hook to generate crash reports when Python scripts fail. Package: apport-retrace Section: devel Architecture: all Depends: python3, python3-apport (>= ${source:Version}), python3-launchpadlib, apt, binutils, dpkg-dev, gdb, libc6-dbg | libc6-dbgsym | libc-dbg, ${misc:Depends} Suggests: gdb-multiarch Description: tools for reprocessing Apport crash reports apport-retrace recombines an Apport crash report (either a file or a Launchpad bug) and debug symbol packages (.ddebs) into fully symbolic stack traces. This can optionally use a sandbox for installing debug symbol packages and doing the processing, so that entire process of retracing crashes can happen with normal user privileges without changing the system. . You need to install gdb-multiarch if you want to be able to retrace crash reports which happened on a different architecture than the one you run apport-retrace on. Package: apport-valgrind Section: devel Architecture: all Depends: python3, python3-apport (>= ${source:Version}), apt, binutils, valgrind (>= 3.8.1-1ubuntu1~), dpkg-dev, libc6-dbg | libc6-dbgsym | libc-dbg, ${misc:Depends} Description: valgrind wrapper that first downloads debug symbols apport-valgrind is a valgrind wrapper that automatically downloads related available debug symbols and provides them to valgrind's memcheck tool, which is executed. The output is a valgrind log file ("valgrind.log") that contains stack traces (with as many symbols resolved as available) and that shows memory leaks. Package: apport-gtk Section: gnome Architecture: all Depends: python3, python3-apport (>= ${source:Version}), gir1.2-gtk-3.0 (>= 3.1.90), gir1.2-wnck-3.0, python3-gi, apport (>= 0.41), procps, gnome-terminal | x-terminal-emulator, whoopsie-preferences, ${misc:Depends} Recommends: update-notifier, gdb | gdb-minimal Description: GTK+ frontend for the apport crash report system apport automatically collects data from crashed processes and compiles a problem report in /var/crash/. This utilizes the crashdump helper hook provided by the Ubuntu kernel. . This package provides a GTK+ frontend for browsing and handling the crash reports. Package: apport-kde Section: kde Architecture: all Depends: python3, python3-apport (>= ${source:Version}), python3-pyqt5, apport (>= 0.41), procps, konsole | x-terminal-emulator, ${misc:Depends} Recommends: kubuntu-notification-helper | lxqt-notificationd, gdb-minimal | gdb Description: KDE frontend for the apport crash report system apport automatically collects data from crashed processes and compiles a problem report in /var/crash/. This utilizes the crashdump helper hook provided by the Ubuntu kernel. . This package provides a KDE frontend for browsing and handling the crash reports. Package: dh-apport Section: devel Architecture: all Multi-Arch: foreign Depends: ${perl:Depends}, ${misc:Depends} Description: debhelper extension for the apport crash report system apport automatically collects data from crashed processes and compiles a problem report in /var/crash/. This utilizes the crashdump helper hook provided by the Ubuntu kernel. . This package provides a debhelper extension to make it easier for other packages to include apport hooks. Package: apport-noui Section: utils Architecture: all Depends: python3, python3-apport (>= ${source:Version}), apport (>= 2.20.10-0ubuntu4), procps, gdb-minimal | gdb, whoopsie, ${misc:Depends} Description: tools for automatically reporting Apport crash reports apport automatically collects data from crashed processes and compiles a problem report in /var/crash/. This utilizes the crashdump helper hook provided by the Ubuntu kernel. . Installing this package will configure your system to automatically submit all new Apport crash reports. ������������������������������������������������������������������apport-2.20.11/debian/copyright���������������������������������������������������������������������0000664�0000000�0000000�00000001161�14416105132�013223� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Contact: Martin Pitt <martin.pitt@ubuntu.com> Source: https://launchpad.net/apport/+download Files: * Copyright: Copyright (C) 2006-2012 Canonical Ltd. License: GPL-2+ 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. . On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-2'. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/dh-apport.install�������������������������������������������������������������0000664�0000000�0000000�00000000146�14416105132�014560� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������../../debhelper/dh_apport usr/bin ../../debhelper/apport.pm usr/share/perl5/Debian/Debhelper/Sequence ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/dh-apport.manpages������������������������������������������������������������0000664�0000000�0000000�00000000026�13562354544�014720� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������debhelper/dh_apport.1 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/python3-apport.install��������������������������������������������������������0000664�0000000�0000000�00000000127�13562354544�015606� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������usr/lib/python3*/*-packages/apport/* usr/lib/python3*/*-packages/apport_python_hook.py �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/python3-problem-report.install������������������������������������������������0000664�0000000�0000000�00000000054�13562354544�017251� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������usr/lib/python3*/*-packages/problem_report* ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/rules�������������������������������������������������������������������������0000775�0000000�0000000�00000002252�14416106601�012354� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/make -f %: dh "$@" --with python3,translations,systemd --buildsystem pybuild # needs manual commands for Python 3, see Debian #597105 override_dh_auto_clean: dh_auto_clean rm -rf build override_dh_auto_build: dh_auto_build python3 setup.py build override_dh_auto_install: dh_auto_install set -ex; for python in $(shell py3versions -r); do \ $$python setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb; \ done override_dh_auto_test: ifeq (, $(findstring nocheck, $(DEB_BUILD_OPTIONS))) # drop LD_PRELOAD to avoid running under fakeroot; drop TMPDIR to work # around LP#972324 (set by autopkgtest) # run subset of tests that work on buildds, full tests are in # autopkgtest set -e; for t in apport_unpack apport_valgrind crashdb hooks packaging \ parse_segv problem_report rethread; do \ env -u LD_PRELOAD -u TMPDIR APPORT_TEST_NOXVFB=1 sh test/run $$t; \ done endif override_dh_installinit: dh_installinit --error-handler=true override_dh_install: dh_install -X.pyc -X.egg-info --list-missing pod2man -c Debhelper -r "$(DEB_VERSION)" debhelper/dh_apport debhelper/dh_apport.1 override_dh_python3: dh_python3 --skip-private ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/source/�����������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416105132�012571� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/source/format�����������������������������������������������������������������0000664�0000000�0000000�00000000004�14416105132�013776� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������1.0 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/tests/������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416106601�012435� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/tests/control�����������������������������������������������������������������0000664�0000000�0000000�00000000513�14416106601�014037� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Tests: upstream-system Depends: apport, apport-retrace, apport-valgrind, apport-gtk, apport-kde, build-essential, psmisc, python3-twisted, python3-mock, python3-systemd, xvfb, xterm, dbus-x11, at-spi2-core, gvfs-daemons, gnome-icon-theme, libglib2.0-dev, Restrictions: allow-stderr, isolation-container, needs-root �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/tests/upstream-system���������������������������������������������������������0000664�0000000�0000000�00000000555�14416106601�015547� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # do not run in the source tree, as we want to check the system-installed # apport TESTDIR=${ADTTMP:-/tmp}/apport-tests mkdir -p $TESTDIR cp test/test_* test/run "$TESTDIR" cd "$TESTDIR" # clean up old crash reports rm -rf /var/crash/* export GNUPGHOME=$TESTDIR/gnupg mkdir -m 700 $GNUPGHOME ./run ret=$? echo "Number of failed tests: $ret" exit $ret ���������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/debian/watch�������������������������������������������������������������������������0000664�0000000�0000000�00000000115�14416105132�012317� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������version=3 http://launchpad.net/apport/+download .*/apport-([0-9.]+)\.tar\.gz ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/doc/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416105132�010614� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/doc/crashdb-conf.txt�����������������������������������������������������������������0000664�0000000�0000000�00000012517�14416105132�013714� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Principal CrashDB conf file =========================== The file is located in /etc/apport/crashdb.conf . This file contains information about the Crash Databases to use when sending a crash report. Here is an excerpt of the file: +----------------- default = 'ubuntu' databases = { 'ubuntu': { 'impl': 'launchpad', 'distro': 'ubuntu' 'bug_pattern_url': 'http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml', 'dupdb_url': 'http://people.canonical.com/~ubuntu-archive/apport-duplicates', }, } +----------------- The 'default' parameter is used to specify the default database to use when getting a crash report. It's one of the names used as a label in the databases dictionary. Please note that package hooks can change the database to report to by setting the "CrashDB" field; please see package-hooks.txt for details of this. Standard options ================ All crash database implementations support the following options: - bug_pattern_url: URL to an XML file describing the bug patterns for this distribution. This can match existing bugs to arbitrary keys of a report with regular expressions, to prevent common problems from being reported over and over again. Please see apport.Report.search_bug_patterns() for the format. - dupdb_url: URL for the duplicate DB export, to prevent already known crashes from being reported again. This can be generated from an existing duplicate database SQLite file with "dupdb admin publish" (see manpage) or with the --publish-db option of crash-digger. - problem_types: List of "ProblemType:" values that this database accepts for reporting. E. g. you might set 'problem_types': ['Bug', 'Package'] to only get bug and package failure reports reported to this database, but not crash reports. If not present, all types of problems will be reported. Third Parties crashdb databases =============================== Third party packages can also ship a set of databases to use with Apport. Their configuration files should be located in /etc/apport/crashdb.conf.d/ and end with ".conf". Here is an example /etc/apport/crashdb.conf.d/test.conf file: +----------------- mydatabase = { 'impl': 'mycrashdb_impl', 'option1': 'myoption1', 'option2': 'myoption2' } mydatabase1 = { 'impl': 'mycrashdb_impl', 'option1': 'myoption3', 'option2': 'myoption4' } +----------------- The databases specified in this file will be merged into the 'databases' dictionary. The result is the equivalent of having the principal file: +----------------------- default = 'ubuntu' databases = { 'ubuntu': { 'impl': 'launchpad', 'bug_pattern_url': 'http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml', 'distro': 'ubuntu' }, 'mydatabase': { 'impl': 'mycrashdb_impl', 'option1': 'myoption1', 'option2': 'myoption2' }, 'mydatabase1': { 'impl': 'mycrashdb_impl', 'option1': 'myoption3', 'option2': 'myoption4' } } +----------------------- Crash database implementations ============================== * "launchpad" uses bug reports against https://launchpad.net, either projects or distribution packages. Options: - distro: Name of the distribution in Launchpad - project: Name of the project in Launchpad (Note that exactly one of "distro" or "project" must be given.) - staging: If set, this uses staging instead of production (optional). This can be overriden or set by $APPORT_STAGING environment. - cache_dir: Path to a permanent cache directory; by default it uses a temporary one. (optional). This can be overridden or set by $APPORT_LAUNCHPAD_CACHE environment. - escalation_subscription: This subscribes the given person or team to a bug once it gets the 10th duplicate. - escalation_tag: This adds the given tag to a bug once it gets more than 10 duplicates. - initial_subscriber: The Launchpad user which gets subscribed to newly filed bugs (default: "apport"). It should be a bot user which the crash-digger instance runs as, as this will get to see all bug details immediately. - triaging_team: The Launchpad user/team which gets subscribed after updating a crash report bug by the retracer (default: "ubuntu-crashes-universe") - architecture: If set, this sets and watches out for needs-*-retrace tags of this architecture. This is useful when being used with apport-retrace and crash-digger to process crash reports of foreign architectures. Defaults to system architecture. Crash reports are always filed as private Launchpad bug. Bug reports are public by default, but a package hook can change this by adding a "LaunchpadPrivate" report field (NOT a crashdb option!) with any value, and adding a "LaunchpadSubscribe" report field with a list of initial subscribers. For example, your package hook might do this: def add_info(report): report['LaunchpadPrivate'] = '1' report['LaunchpadSubscribe'] = 'joe-hacker foobar-dev' * "memory" is a simple implementation of crash database interface which keeps everything in RAM. This is mainly useful for testing and debugging. The only supported option is "dummy_data"; if set to a non-False value, it will populate the database with some example reports. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/doc/data-format.tex������������������������������������������������������������������0000664�0000000�0000000�00000027540�13562354544�013563� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\documentclass[DIV12,halfparskip]{scrartcl} \usepackage{booktabs} \title{The Apport crash report format\\ \vspace{1ex}\large Version 0.2} \author{Martin Pitt \texttt{<martin.pitt@ubuntu.com>}} \begin{document} \maketitle \tableofcontents \newpage \section{Introduction} Apport is a system for automatic problem reporting and feedback, with the following features: \begin{itemize} \item intercept program crashes right when they happen the first time \item collect potentially useful information about the crash and the OS environment \item can be automatically invoked for unhandled exceptions in other programming languages (e. g. for Python) \item can be automatically invoked for other problems that can be detected mechanically (such as package installation/upgrade failures from update-manager) \item easy to understand UI that informs the user about the crash and instructs them on how to proceed, \item written in a very modular way: user interfaces (such as Gtk/Qt), crash databases (such as Launchpad/Bugzilla), packaging systems (apt/dpkg/rpm), are all factorized \item independent of a particular desktop environment, Linux flavour, etc. \item very robust due to exhaustive test suite coverage \item includes tools for post-processing crashes, such as post-mortem generation of symbolic stack traces \end{itemize} The Apport home page\footnote{https://wiki.ubuntu.com/Apport} has some more information. All components of apport (crash interception, enrichment with information, UI presentation, crash database up/download, crash post-processing) work on a common report file format. This allows adopters of Apport to use only some parts and combine it with existing project specific solutions like as Gnome's bug-buddy, and get the option to eventually merge such systems. This document describes the structure of the report files and the pre-defined data fields. \section{File format} \subsection{Structure} Apport report files consist of key/value pairs based on the standard RFC822\footnote{http://www.ietf.org/rfc/rfc0822.txt} format, except that Apport uses case sensitive keys. Key name and value are separated by a colon and a space (``\verb!: !'' ). There must not be any blank lines and no lines that start with a non-whitespace character and do not start with a key name and a colon. \subsection{Keys} Key names consist of numbers (\verb!0! -- \verb!9!), English letters (\verb!a! -- \verb!z! and \verb!A! -- \verb!Z!), dots (\verb!.!), dashes (\verb!-!), and underscores (\verb!_!). Apport and its libraries treat them as case sensitive (unlike RFC822). \subsection{Textual values} Single line textual values directly follow the key name, colon and dot without any further encoding or escaping. There is no line length limit. In multi-line textual values, the line feed character (\verb!\n!, ASCII Code 10) is escaped by appending a single space (ASCII code 32). In other words, every line of a multi-line value but the first one must be indented by a single space which is not part of the value. \subsection{Binary values} This is a compressed format intended for binary data such as memory dumps. It can optionally be used for long textual values like large log files if they should be compressed. A binary value is introduced by the text ``\verb!base64!'' and a line break following the key name, colon, and space. After that, the binary data is encoded as follows: \begin{itemize} \item Write a gzip header \item Initialize a zlib compressor object. \item Read a block of (at most) 1 MiB (1,048,576 Bytes) of binary data. \item Compress this block with the zlib compressor. \item Generate the base64-encoding of the compressed block \item Write a space and the base64-encoded block to the report file. \item If there is more source data to be encoded, go to 2. \item flush the zlib compressor, append the gzip trailer, base64-encode the tail and write it to the report file, again with a space prefix. \end{itemize} With this algorithm the binary encoding format obeys the same text line folding convention than the textual values. \subsection{Ordering} In order to keep the report files readable by humans, the following conventions should be met: \begin{itemize} \item The textual values should be at the top, the binary values at the bottom of the file. This eases their inspection in web browsers, even with partial downloads. \item Within each group (textual/binary), the keys should appear in ascending alphabetical order. \end{itemize} Software that processes Apport crash report files must not rely on those conventions. It is acceptable to not follow them for performance reasons. \subsection{Example} This table shows an example data set: \begin{tabular}{lp{10cm}}\toprule \textbf{Key} & \textbf{Value}\\ \midrule Short1 & \verb!Single line value!\\ Date & \verb!December 24, 2000!\\ Long & \verb!Multiple lines!\par\verb! with leading!\par\verb!space!\\ TestBin & \verb!ABABABABABABABABABAB\0\0\0\0\0\0\0\0\0\0ZZZZZZZZZZ!\\ \bottomrule \end{tabular} This would be encoded as: \begin{verbatim} Date: December 24, 2000 Long: Multiple lines with leading space Short1: Single line value TestBin: base64 eJw= c3RyxIAMcBAFAG55BXk= \end{verbatim} \section{Standard keys} In order to provide a basic level of interoperability between all systems using the Apport report format, a number of standard key names and semantics are defined. This is particularly important for tools which automatically reprocess problem reports. Implementations can add additional fields at will, especially if these are mainly aimed at human examination. Field names which will be processed mechanically should be added to this standard document eventually. \subsection{Generic fields} The following keys apply to all types of problem reports. They classify the problem type and give information about the date, operating system and user environment. \begin{description} \item [ProblemType:] (required) Classification of the problem type; Currently defined values are \verb!Crash!, \verb!KernelOops!, \verb!KernelCrash!,\verb!Package! (for failed install/upgrade of a software package), and \verb!Bug! (for general bug reports) \item [Date:] (required) Date and time of the problem report in ISO format (see \verb!asctime(3)!) \item [Uname:] (required) Output of \verb!uname -srm! \item [DistroRelease:] (optional) Name and version of the operating system. Read from NAME and VERSION\_ID in \verb!/etc/os-release!, or from \verb!lsb_release -sir!. \item [Architecture:] (optional) OS specific notation of processor/system architecture (e. g. \verb!i386!) \item [UserGroups:] (optional) System groups of the user reporting the problem; for privacy reasons this should only include IDs smaller than 500, no groups which belong to other real users. \item [Tags:] (optional) A space-delimited list of tage that may be passed to the crash database, depending on which one is used. \end{description} \subsection{Process specific data fields} The following fields describe interesting properties of a particular process. This always applies to \verb!ProblemType!s \verb!Crash! and also to \verb!Bug! if the bug is reported against a running process (as opposed to just a package). \begin{description} \item [ExecutablePath:] (required) Contents of \verb!/proc/pid/exe! for ELF files; if the process is an interpreted script, this is the script path instead \item [InterpreterPath:] (required for scripts) Contents of \verb!/proc/pid/exe! if the process is an interpreted script \item [ProcEnviron:] (required) A subset of the process' environment, from \verb!/proc/pid/env!; this should only show some standard variables that do not disclose potentially sensitive information, like \verb!$SHELL!, \verb!$LANG!, and \verb!$LC_*!. \verb!$PATH! should only be examined for being the vendor default (not mentioned at all then), containing nonstandard system directories ("'custom, no user"'), or containing paths from /home ("'custom, user"'). \item [ProcCmdline:] (required) Contents of \verb!/proc/pid/cmdline! \item [ProcStatus:] (required) Contents of \verb!/proc/pid/status! \item [ProcMaps:] (required) Contents of \verb!/proc/pid/maps! \item [ProcAttrCurrent:] (optional) Contents of \verb!/proc/pid/attr/current!; this contains the process' security context if there is a Linux Security module enabled that makes use of that interface (e.g. SELinux, AppArmor). \end{description} \subsection{Signal crash specific data fields} The following fields describe properties of a process that crashed due to a signal. This applies to \verb!ProblemType! \verb!Crash! if a core dump is available. Note that \verb!Crash! is also used for unhandled exceptions of programs written in scripting languages, in which case there is no core dump. \begin{description} \item [CoreDump:] (optional) core dump (binary value); this can also be a 'minidump' format or any other useful image of the stack. \item [Stacktrace:] (optional) Stack trace (e. g. produced by gdb's \verb!bt full! command or minidump processor) \item [ThreadStacktrace:] (optional) Threaded stack trace (e. g. produced by the gdb command \verb!thread apply all bt full! or minidump processor) \item [StacktraceTop:] (optional) First five frames of \verb!Stacktrace! with the leading addresses and local variables removed; this is intended to be evaluated for automatic duplicate detection \item [Registers:] (optional) Register dump (e. g. produced by gdb's \verb!info registers! command) \item [Disassembly:] (optional) Disassembly of the code leading to the crash (e. g. produced by gdb's \verb!x/16i $pc! command) \end{description} Note that every crash report must contain \verb!CoreDump! or a symbolic \verb!Stacktrace! in order to be useful at all. The recommended approach is to include the stack trace for the initial report, and drop it once it has been recombined with debug symbols to produce a full Stacktrace. \subsection{Package specific data fields} The following fields describe properties of a package and its dependencies. This applies to \verb!ProblemType!s \verb!Crash!, \verb!Package!, and \verb!Bug! if the bug applies to a particular package (as opposed to being a generic OS bug). \begin{description} \item [Package:] (required) Package name and version, separated by space \item [PackageArchitecture:] (required if different from \verb!Architecture!) Processor architecture the package was built for; there are some architectures (like \verb!x86_64! or \verb!sparc64!) which support multiple package architectures \item [Dependencies:] (required) Package names and versions of all transitive dependencies of the package; one line per package \item [SourcePackage:] (optional) The name of the corresponding source package \end{description} Optionally, the name and version in \verb!Package! and \verb!Dependencies! can be followed by a list of modified files in that package, enclosed in brackets. Example: \begin{verbatim} Package: bash 3.2-1 Dependencies: libreadline5 5.2-3 [modified: /lib/libreadline.so.5] libc6 2.5-1 [modified: /etc/ld.so.conf] \end{verbatim} \subsection{Kernel specific data fields} The following fields describe properties of a kernel oops/crash. This applies to \verb!ProblemType! \verb!Kernel!. \begin{description} \item [ProcVersion:] (required) Contents of \verb!/proc/version! \item [ProcCpuinfo:] (required) Contents of \verb!/proc/cpuinfo! \item [ProcModules:] (required) Contents of \verb!/proc/modules! \item [ProcCmdline:] (required) Contents of \verb!/proc/cmdline! \item [Dmesg:] (required) Output of \verb!dmesg! \item [LsPciVV:] (optional) Output of \verb!lspci -vv! \item [LsPciVVN:] (optional) Output of \verb!lspci -vvn! \end{description} \end{document} ����������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/doc/package-hooks.txt����������������������������������������������������������������0000664�0000000�0000000�00000012221�14416105132�014067� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Apport per-package hooks ======================== In addition to the generic information apport collects, arbitrary package-specific data can be included in the report by adding package hooks. For example: - Relevant log files - Configuration files - Current system state Hooks can also ask interactive questions, cause a crash to be ignored, or the problem can be marked as "not reportable" with an explanation. This happens by placing a Python code snippet into /usr/share/apport/package-hooks/<packagename>.py or /usr/share/apport/package-hooks/source_<sourcepackagename>.py Apport will import this and call a function add_info(report, ui) and pass two arguments: - The currently processed problem report. This is an instance of apport.Report, and should mainly be used as a dictionary (keys have to be alphanumeric and may contain dots, dashes, or underscores). Please see the Python help of this class for details: python -c 'import apport; help(apport.Report)' - An instance of apport.ui.HookUI which can be used to interactively get more information from the user, such as asking for doing a particular action, yes/no question, multiple choices, or a file selector. Please see the Python help for available functions: python -c 'import apport.ui; help(apport.ui.HookUI)' Hook behaviour ============== If you just add information in hooks, Apport will always proceed with filing a report. You can influence this in various ways: * The hook detects a situation which should not be reported as a problem, because they happen on known-bad hardware, from a third-party repository, or other situations. This can be achieved by adding a field report['UnreportableReason'] = _('explanation') Such reports are displayed by the apport frontends as unreportable with the given explanation. Please ensure proper i18n for the texts. * The user cancelled an interactive question for which the hook requires an answer. Then you should call raise StopIteration to cancel the problem report submission. For special classes of problems where Apport does not have a builtin crash duplicate detection (such as for signal and Python crashes), hooks can also set report['DuplicateSignature']. This should both uniquely identify the problem class (e. g. "XorgGPUFreeze") as well as the particular problem (i. e. variables which tell this instance apart from different problems). Package independent hooks ========================= Similarly to per-package hooks, you can also have additional information collected for any crash or bug. For example, you might want to include violation logs from SELinux or AppArmor for every crash. The interface and file format is identical to the per-package hooks, except that they need to be put into /usr/share/apport/general-hooks/<hookname>.py The <hookname> can be arbitrary and should describe the functionality. Tags ==== Some bug tracking systems support tags to further categorize bug reports and make searching/duplication easier. Hooks can set tags with report['Tags'] = 'tag1 tag2' i. e. a space separated list of tag names. Customize the crash DB to use ============================= To use another crash database than the default one, you should create an hook that adds a 'CrashDB' field with the name of the database to use. See /etc/apport/crashdb.conf and /etc/apport/crashdb.conf.d/*.conf for available databases. If there is no existing database, or you do not want to ship a configuration, the 'CrashDB' field can also contain the DB specification itself, i. e. what would otherwise be in /etc/apport/crashdb.conf.d/*.conf. Example: report['CrashDB'] = '{ "impl": "launchpad", "project": "foo", "my_option": "1"}' Please see crashdb-conf.txt for a description of available implementations and options. Standard hook functions ======================= If you write hooks, please have a look at the apport.hookutils module first: python -c 'import apport.hookutils; help(apport.hookutils)' It provides readymade and safe functions many standard situations, such as getting a command's output, attaching a file's contents, attaching hardware related information, etc. Examples ======== Trivial example: To attach a log file /var/log/foo.log for crashes in binary package foo, put this into /usr/share/apport/package-hooks/foo.py: ------------ 8< ---------------- import os.path def add_info(report, ui): if os.path.exists('/var/log/foo.log'): report['FooLog'] = open('/var/log/foo.log').read() ------------ 8< ---------------- Example with an interactive question and attaching sound hardware information: ------------ 8< ---------------- import apport.hookutils def add_info(report, ui): apport.hookutils.attach_alsa(report) ui.information('Now playing test sound...') report['AplayOut'] = apport.hookutils.command_output(['aplay', '/usr/share/sounds/question.wav']) response = ui.yesno('Did you hear the sound?') if response == None: # user cancelled raise StopIteration report['SoundAudible'] = str(response) ------------ 8< ---------------- Apport itself ships a source package hook, see /usr/share/apport/package-hooks/source_apport.py. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/doc/symptoms.txt���������������������������������������������������������������������0000664�0000000�0000000�00000004717�14416105132�013261� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Apport symptom scripts ====================== In some cases it is quite hard for a bug reporter to figure out which package to file a bug against, especially for functionality which spans multiple packages. For example, sound problems are divided between the kernel, alsa, pulseaudio, and gstreamer. Apport supports an extension of the notion of package hooks to do an interactive "symptom based" bug reporting. Calling the UI with just "-f" and not specifying any package name shows the available symptoms, the user selects the matching category, and the symptom scripts can do some question & answer game to finally figure out which package to file it against and which information to collect. Alternatively, the UIs can be invoked with "-s symptom-name". Structure ========= Symptom scripts go into /usr/share/apport/symptoms/symptomname.py, and have the following structure: ------------ 8< ---------------- description = 'One-line description' def run(report, ui): problem = ui.choice('What particular problem do you observe?', ['Thing 1', 'Thing 2', ... ]) # collect debugging information here, ask further questions, and figure out # package name return 'packagename' ------------ 8< ---------------- They need to define a run() method which can use the passed HookUI object for interactive questions (see package-hooks.txt for details about this). run() can optionally add information to the passed report object, such as tags. Before run() is called, Apport already added the OS and user information to the report object. After the symptom run() method, Apport adds package related information and calls the package hooks as usual. run() has to return the (binary) package name to file the bug against. Just as package hooks, if the user canceled an interactive question for which the script requires an answer, run() should raise StopIteration, which will stop the bug reporting process. Example ======= import apport description = 'External or internal storage devices (e. g. USB sticks)' def run(report, ui): problem = ui.choice('What particular problem do you observe?', ['Removable storage device is not mounted automatically', 'Internal hard disk partition cannot be mounted manually', # ... ] # collect debugging information here, ask further questions if not kernel_detected: return apport.packaging.get_kernel_package() if not udev_detected: return 'udev' return 'devicekit-disks' �������������������������������������������������apport-2.20.11/etc/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416101075�010624� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/apport/��������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416105132�012127� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/apport/blacklist.d/��������������������������������������������������������������0000775�0000000�0000000�00000000000�14416105132�014321� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/apport/blacklist.d/README.blacklist����������������������������������������������0000664�0000000�0000000�00000000331�14416101075�017147� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Blacklist for apport # If an executable path appears on any line in any file in # /etc/apport/blacklist.d/, apport will not generate a crash report # for it. Matches are exact only at the moment (no globbing etc.). �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/apport/blacklist.d/apport��������������������������������������������������������0000664�0000000�0000000�00000000030�14416105132�015542� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/usr/bin/wine-preloader ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/apport/crashdb.conf��������������������������������������������������������������0000664�0000000�0000000�00000002300�14416105132�014377� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# map crash database names to CrashDatabase implementations and URLs default = 'ubuntu' def get_oem_project(): '''Determine OEM project name from Distribution Channel Descriptor Return None if it cannot be determined or does not exist. ''' try: dcd = open('/var/lib/ubuntu_dist_channel').read() if dcd.startswith('canonical-oem-'): return dcd.split('-')[2] except IOError: return None databases = { 'ubuntu': { 'impl': 'launchpad', 'bug_pattern_url': 'http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml', 'dupdb_url': 'http://people.canonical.com/~ubuntu-archive/apport-duplicates', 'distro': 'ubuntu', 'problem_types': ['Bug', 'Package'], 'escalation_tag': 'bugpattern-needed', 'escalated_tag': 'bugpattern-written', }, 'canonical-oem': { 'impl': 'launchpad', 'bug_pattern_url': 'http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml', 'project': get_oem_project(), }, 'debug': { # for debugging 'impl': 'memory', 'bug_pattern_url': '/tmp/bugpatterns.xml', 'distro': 'debug' }, } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/bash_completion.d/���������������������������������������������������������������0000775�0000000�0000000�00000000000�14416101075�014214� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/bash_completion.d/apport_completion����������������������������������������������0000664�0000000�0000000�00000014754�14416101075�017710� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # Apport bash-completion # ############################################################################### # get available symptoms _apport_symptoms () { local syms if [ -r /usr/share/apport/symptoms ]; then for FILE in $(ls /usr/share/apport/symptoms); do # hide utility files and symptoms that don't have a run() function if [[ ! "$FILE" =~ ^_.* && -n $(egrep "^def run\s*\(.*\):" /usr/share/apport/symptoms/$FILE) ]]; then syms="$syms ${FILE%.py}" fi done fi echo $syms } # completion when used without parameters _apport_parameterless () { local param # parameter-less completion # param= COMMAND parameters # package names # PIDs # Symptoms # any file param="$dashoptions \ $( apt-cache pkgnames $cur 2> /dev/null ) \ $( command ps axo pid | sed 1d ) \ $( _apport_symptoms ) \ $( compgen -G "${cur}*" )" COMPREPLY=( $( compgen -W "$param" -- $cur) ) } # apport-bug ubuntu-bug completion _apport-bug () { local cur dashoptions prev param COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} # available options dashoptions='-h --help --save -v --version --tag -w --window' case "$prev" in ubuntu-bug | apport-bug) case "$cur" in -*) # parameter completion COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) ) ;; *) # no parameter given _apport_parameterless ;; esac ;; --save) COMPREPLY=( $( compgen -o default -G "$cur*" ) ) ;; -w | --window) dashoptions="--save --tag" COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) ) ;; -h | --help | -v | --version | --tag) # standalone parameters return 0 ;; *) # --save and --window make only sense once dashoptions="--tag" if ! [[ "${COMP_WORDS[*]}" =~ .*--save.* ]]; then dashoptions="--save $dashoptions" fi if ! [[ "${COMP_WORDS[*]}" =~ .*--window.* || "${COMP_WORDS[*]}" =~ .*\ -w\ .* ]]; then dashoptions="-w --window $dashoptions" fi case "$cur" in -*) # parameter completion COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) ) ;; *) _apport_parameterless ;; esac ;; esac } # apport-cli completion _apport-cli () { local cur dashoptions prev param COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} # available options dashoptions='-h --help -f --file-bug -u --update-bug -s --symptom \ -c --crash-file --save -v --version --tag -w --window' case "$prev" in apport-cli) case "$cur" in -*) # parameter completion COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) ) ;; *) # no parameter given _apport_parameterless ;; esac ;; -f | --file-bug) param="-P --pid -p --package -s --symptom" COMPREPLY=( $( compgen -W "$param $(_apport_symptoms)" -- $cur) ) ;; -s | --symptom) COMPREPLY=( $( compgen -W "$(_apport_symptoms)" -- $cur) ) ;; --save) COMPREPLY=( $( compgen -o default -G "$cur*" ) ) ;; -c | --crash-file) # only show *.apport *.crash files COMPREPLY=( $( compgen -G "${cur}*.apport" compgen -G "${cur}*.crash" ) ) ;; -w | --window) dashoptions="--save --tag" COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) ) ;; -h | --help | -v | --version | --tag) # standalone parameters return 0 ;; *) dashoptions='--tag' # most parameters only make sense once if ! [[ "${COMP_WORDS[*]}" =~ .*--save.* ]]; then dashoptions="--save $dashoptions" fi if ! [[ "${COMP_WORDS[*]}" =~ .*--window.* || "${COMP_WORDS[*]}" =~ .*\ -w\ .* ]]; then dashoptions="-w --window $dashoptions" fi if ! [[ "${COMP_WORDS[*]}" =~ .*--symptom.* || "${COMP_WORDS[*]}" =~ .*\ -s\ .* ]]; then dashoptions="-s --symptom $dashoptions" fi if ! [[ "${COMP_WORDS[*]}" =~ .*--update.* || "${COMP_WORDS[*]}" =~ .*\ -u\ .* ]]; then dashoptions="-u --update $dashoptions" fi if ! [[ "${COMP_WORDS[*]}" =~ .*--file-bug.* || "${COMP_WORDS[*]}" =~ .*\ -f\ .* ]]; then dashoptions="-f --file-bug $dashoptions" fi if ! [[ "${COMP_WORDS[*]}" =~ .*--crash-file.* || "${COMP_WORDS[*]}" =~ .*\ -c\ .* ]]; then dashoptions="-c --crash-file $dashoptions" fi # use same completion as if no parameter is given case "$cur" in -*) # parameter completion COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) ) ;; *) _apport_parameterless ;; esac ;; esac } # apport-unpack completion _apport-unpack () { local cur prev COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} case "$prev" in apport-unpack) # only show *.apport *.crash files COMPREPLY=( $( compgen -G "${cur}*.apport" compgen -G "${cur}*.crash" ) ) ;; esac } # apport-collect completion _apport-collect () { local cur prev COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} case "$prev" in apport-collect) COMPREPLY=( $( compgen -W "-p --package --tag" -- $cur) ) ;; -p | --package) # list package names COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) ) ;; --tag) # standalone parameter return 0 ;; *) # only complete -p/--package once if [[ "${COMP_WORDS[*]}" =~ .*\ -p.* || "${COMP_WORDS[*]}" =~ .*--package.* ]]; then COMPREPLY=( $( compgen -W "--tag" -- $cur) ) else COMPREPLY=( $( compgen -W "-p --package --tag" -- $cur) ) fi ;; esac } # bind completion to apport commands complete -F _apport-bug -o filenames -o dirnames ubuntu-bug complete -F _apport-bug -o filenames -o dirnames apport-bug complete -F _apport-cli -o filenames -o dirnames apport-cli complete -F _apport-unpack -o filenames -o dirnames apport-unpack complete -F _apport-collect apport-collect # vi: syntax=bash ��������������������apport-2.20.11/etc/cron.daily/����������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�012702� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/cron.daily/apport����������������������������������������������������������������0000775�0000000�0000000�00000000570�13562354544�014137� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh -e # clean all crash reports which are older than a week. [ -d /var/crash ] || exit 0 find /var/crash/. ! -name . -prune -type f \( \( -size 0 -a \! -name '*.upload*' -a \! -name '*.drkonqi*' \) -o -mtime +7 \) -exec rm -f -- '{}' \; find /var/crash/. ! -name . -prune -type d -regextype posix-extended -regex '.*/[0-9]{12}$' \( -mtime +7 \) -exec rm -Rf -- '{}' \; ����������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/default/�������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�012264� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/default/apport�������������������������������������������������������������������0000664�0000000�0000000�00000000225�13562354544�013513� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# set this to 0 to disable apport, or to 1 to enable it # you can temporarily override this with # sudo service apport start force_start=1 enabled=1 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/init.d/��������������������������������������������������������������������������0000775�0000000�0000000�00000000000�15013704444�012014� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/etc/init.d/apport��������������������������������������������������������������������0000775�0000000�0000000�00000005550�15013704444�013254� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh ### BEGIN INIT INFO # Provides: apport # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: automatic crash report generation ### END INIT INFO DESC="automatic crash report generation" NAME=apport AGENT=/usr/share/apport/apport SCRIPTNAME=/etc/init.d/$NAME # Exit if the package is not installed [ -x "$AGENT" ] || exit 0 # read default file enabled=1 [ -e /etc/default/$NAME ] && . /etc/default/$NAME || true # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # # Function that starts the daemon/service # do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started [ -e /var/crash ] || mkdir -p /var/crash chmod 1777 /var/crash # check for kernel crash dump, convert it to apport report if [ -e /var/crash/vmcore ] || [ -n "`ls /var/crash | egrep ^[0-9]{12}$`" ];then /usr/share/apport/kernel_crashdump || true fi # check for incomplete suspend/resume or hibernate if [ -e /var/lib/pm-utils/status ]; then /usr/share/apport/apportcheckresume || true rm -f /var/lib/pm-utils/status rm -f /var/lib/pm-utils/resume-hang.log fi echo "|$AGENT -p%p -s%s -c%c -d%d -P%P -u%u -g%g -F%F -- %E" > /proc/sys/kernel/core_pattern echo 2 > /proc/sys/fs/suid_dumpable echo 10 > /proc/sys/kernel/core_pipe_limit } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred echo 0 > /proc/sys/kernel/core_pipe_limit echo 0 > /proc/sys/fs/suid_dumpable # Check for a hung resume. If we find one try and grab everything # we can to aid in its discovery. if [ -e /var/lib/pm-utils/status ]; then ps -wwef >/var/lib/pm-utils/resume-hang.log fi if [ "`dd if=/proc/sys/kernel/core_pattern count=1 bs=1 2>/dev/null`" != "|" ]; then return 1 else echo "core" > /proc/sys/kernel/core_pattern fi } case "$1" in start) # don't start in containers grep -zqs '^container=' /proc/1/environ && exit 0 [ "$enabled" = "1" ] || [ "$force_start" = "1" ] || exit 0 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC:" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) # don't stop in containers grep -zqs '^container=' /proc/1/environ && exit 0 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC:" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; restart|force-reload) $0 stop || true $0 start ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac : ��������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/gtk/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416106601�010636� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/gtk/apport-gtk�����������������������������������������������������������������������0000775�0000000�0000000�00000056250�14416106601�012664� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 '''GTK Apport user interface.''' # Copyright (C) 2007-2016 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os.path, sys, subprocess, os, re import gi gi.require_version('Wnck', '3.0') gi.require_version('GdkX11', '3.0') from gi.repository import GLib, Wnck, GdkX11, Gdk Gdk # pyflakes; needed for GdkX11 try: from gi.repository import Gtk except RuntimeError as e: # probably session just closing down? sys.stderr.write('Cannot start: %s\n' % str(e)) sys.exit(1) import apport from apport import unicode_gettext as _ import apport.ui have_display = os.environ.get('DISPLAY') or os.environ.get('WAYLAND_DISPLAY') def find_xid_for_pid(pid): '''Return the X11 Window (xid) for the supplied process ID.''' pid = int(pid) screen = Wnck.Screen.get_default() screen.force_update() for window in screen.get_windows(): if window.get_pid() == pid: return window.get_xid() return None class GTKUserInterface(apport.ui.UserInterface): '''GTK UserInterface.''' def w(self, widget): '''Shortcut for getting a widget.''' return self.widgets.get_object(widget) def __init__(self): apport.ui.UserInterface.__init__(self) # load UI Gtk.Window.set_default_icon_name('apport') self.widgets = Gtk.Builder() self.widgets.set_translation_domain(self.gettext_domain) self.widgets.add_from_file(os.path.join(os.path.dirname(sys.argv[0]), 'apport-gtk.ui')) # connect signal handlers assert self.widgets.connect_signals(self) is None # initialize tree model and view self.tree_model = self.w('details_treestore') column = Gtk.TreeViewColumn('Report', Gtk.CellRendererText(), text=0) self.w('details_treeview').append_column(column) self.spinner = self.add_spinner_over_treeview(self.w('details_overlay')) self.md = None self.desktop_info = None self.allowed_to_report = True # # ui_* implementation of abstract UserInterface classes # def add_spinner_over_treeview(self, overlay): '''Reparents a treeview in a GtkOverlay, then layers a GtkSpinner centered on top.''' # TODO handle the expose event of the spinner so that we can draw on # the treeview's viewport's window instead. spinner = Gtk.Spinner() spinner.set_size_request(42, 42) align = Gtk.Alignment() align.set_valign(Gtk.Align.CENTER) align.set_halign(Gtk.Align.CENTER) align.add(spinner) overlay.add_overlay(align) overlay.show() align.show() spinner.hide() return spinner def ui_update_view(self, shown_keys=None): # do nothing if the dialog is already destroyed when the data # collection finishes if not self.w('details_treeview').get_property('visible'): return if shown_keys: keys = set(self.report.keys()) & set(shown_keys) else: keys = self.report.keys() # show the most interesting items on top keys = sorted(keys) for k in ('Traceback', 'StackTrace', 'Title', 'ProblemType', 'Package', 'ExecutablePath'): if k in keys: keys.remove(k) keys.insert(0, k) self.tree_model.clear() for key in keys: # ignore internal keys if key.startswith('_'): continue keyiter = self.tree_model.insert_before(None, None) self.tree_model.set_value(keyiter, 0, key) valiter = self.tree_model.insert_before(keyiter, None) if not hasattr(self.report[key], 'gzipvalue') and \ hasattr(self.report[key], 'isspace') and \ not self.report._is_binary(self.report[key]): v = self.report[key] if len(v) > 4000: v = v[:4000] if type(v) == bytes: v += b'\n[...]' else: v += '\n[...]' if type(v) == bytes: v = v.decode('UTF-8', errors='replace') self.tree_model.set_value(valiter, 0, v) # expand the row if the value has less than 5 lines if len(list(filter(lambda c: c == '\n', self.report[key]))) < 4: self.w('details_treeview').expand_row( self.tree_model.get_path(keyiter), False) else: self.tree_model.set_value(valiter, 0, _('(binary data)')) def get_system_application_title(self): '''Get dialog title for a non-.desktop application. If the system application was started from the console, assume a developer who would appreciate the application name having a more prominent placement. Otherwise, provide a simple explanation for more novice users. ''' env = self.report.get('ProcEnviron', '') from_console = 'TERM=' in env and 'SHELL=' in env if from_console: if 'ExecutablePath' in self.report: t = (_('Sorry, the application %s has stopped unexpectedly.') % os.path.basename(self.report['ExecutablePath'])) else: t = (_('Sorry, %s has closed unexpectedly.') % self.cur_package) else: if 'DistroRelease' not in self.report: self.report.add_os_info() t = _('Sorry, %s has experienced an internal error.') % self.report['DistroRelease'] return t def setup_bug_report(self): # This is a bug generated through `apport-bug $package`, or # `apport-collect $id`. # avoid collecting information again, in this mode we already have it if 'DistroRelease' in self.report: self.collect_called = True self.ui_update_view() self.w('title_label').set_label('<big><b>%s</b></big>' % _('Send problem report to the developers?')) self.w('title_label').show() self.w('subtitle_label').hide() self.w('ignore_future_problems').hide() self.w('show_details').clicked() self.w('show_details').hide() self.w('dont_send_button').show() self.w('continue_button').set_label(_('Send')) def set_modal_for(self, xid): gdk_window = self.w('dialog_crash_new') gdk_window.realize() gdk_window = gdk_window.get_window() gdk_display = GdkX11.X11Display.get_default() foreign = GdkX11.X11Window.foreign_new_for_display(gdk_display, xid) gdk_window.set_transient_for(foreign) gdk_window.set_modal_hint(True) def ui_present_report_details(self, allowed_to_report=True, modal_for=None): icon = None self.collect_called = False report_type = self.report.get('ProblemType') self.w('details_scrolledwindow').hide() self.w('show_details').set_label(_('Show Details')) self.tree_model.clear() self.allowed_to_report = allowed_to_report if self.allowed_to_report: self.w('remember_send_report_choice').show() self.w('send_problem_notice_label').set_label( '<b>%s</b>' % self.w('send_problem_notice_label').get_label()) self.w('send_problem_notice_label').show() self.w('dont_send_button').grab_focus() else: self.w('dont_send_button').hide() self.w('continue_button').set_label(_('Continue')) self.w('continue_button').grab_focus() self.w('examine').set_visible(self.can_examine_locally()) if modal_for is not None and 'DISPLAY' in os.environ: xid = find_xid_for_pid(modal_for) if xid: self.set_modal_for(xid) if report_type == 'Hang' and self.offer_restart: self.w('ignore_future_problems').set_active(False) self.w('ignore_future_problems').hide() self.w('relaunch_app').set_active(True) self.w('relaunch_app').show() self.w('subtitle_label').show() self.w('subtitle_label').set_label( 'You can wait to see if it wakes up, or close or relaunch it.') self.desktop_info = self.get_desktop_entry() if self.desktop_info: icon = self.desktop_info.get('icon') name = self.desktop_info['name'] name = GLib.markup_escape_text(name) title = _('The application %s has stopped responding.') % name else: icon = 'distributor-logo' name = os.path.basename(self.report['ExecutablePath']) title = _('The program "%s" has stopped responding.') % name self.w('title_label').set_label('<big><b>%s</b></big>' % title) elif not self.report_file or report_type == 'Bug': self.w('remember_send_report_choice').hide() self.w('send_problem_notice_label').hide() self.setup_bug_report() elif report_type == 'KernelCrash' or report_type == 'KernelOops': self.w('ignore_future_problems').set_active(False) self.w('ignore_future_problems').hide() self.w('title_label').set_label('<big><b>%s</b></big>' % self.get_system_application_title()) self.w('subtitle_label').hide() icon = 'distributor-logo' elif report_type == 'Package': package = self.report.get('Package') if package: self.w('subtitle_label').set_label(_('Package: %s') % package) self.w('subtitle_label').show() else: self.w('subtitle_label').hide() self.w('ignore_future_problems').hide() self.w('title_label').set_label( _('Sorry, a problem occurred while installing software.')) else: # Regular crash. self.desktop_info = self.get_desktop_entry() if self.desktop_info: icon = self.desktop_info.get('icon') n = self.desktop_info['name'] n = GLib.markup_escape_text(n) if report_type == 'RecoverableProblem': t = _('The application %s has experienced ' 'an internal error.') % n else: t = _('The application %s has closed unexpectedly.') % n self.w('title_label').set_label('<big><b>%s</b></big>' % t) self.w('subtitle_label').hide() pid = apport.ui.get_pid(self.report) still_running = pid and apport.ui.still_running(pid) if 'ProcCmdline' in self.report and not still_running and self.offer_restart: self.w('relaunch_app').set_active(True) self.w('relaunch_app').show() else: icon = 'distributor-logo' if report_type == 'RecoverableProblem': title_text = _('The application %s has experienced ' 'an internal error.') % self.cur_package else: title_text = self.get_system_application_title() self.w('title_label').set_label('<big><b>%s</b></big>' % title_text) self.w('subtitle_label').show() self.w('subtitle_label').set_label( _('If you notice further problems, ' 'try restarting the computer.')) self.w('ignore_future_problems').set_label(_('Ignore future problems of this type')) if self.report.get('CrashCounter'): self.w('ignore_future_problems').show() else: self.w('ignore_future_problems').hide() if report_type == 'RecoverableProblem': body = self.report.get('DialogBody', '') if body: del self.report['DialogBody'] self.w('subtitle_label').show() # Set a maximum size for the dialog body, so developers do # not try to shove entire log files into this dialog. self.w('subtitle_label').set_label(body[:1024]) if icon: from gi.repository import GdkPixbuf builtin = Gtk.IconLookupFlags.USE_BUILTIN app_icon = self.w('application_icon') theme = Gtk.IconTheme.get_default() try: pb = theme.load_icon(icon, 42, builtin).copy() overlay = theme.load_icon('dialog-error', 16, builtin) overlay_w = overlay.get_width() overlay_h = overlay.get_height() off_x = pb.get_width() - overlay_w off_y = pb.get_height() - overlay_h overlay.composite(pb, off_x, off_y, overlay_w, overlay_h, off_x, off_y, 1, 1, GdkPixbuf.InterpType.BILINEAR, 255) if app_icon.get_parent(): # work around LP#938090 app_icon.set_from_pixbuf(pb) except GLib.GError: self.w('application_icon').set_from_icon_name( 'dialog-error', Gtk.IconSize.DIALOG) else: self.w('application_icon').set_from_icon_name( 'dialog-error', Gtk.IconSize.DIALOG) d = self.w('dialog_crash_new') if 'DistroRelease' in self.report: d.set_title(self.report['DistroRelease'].split()[0]) d.set_resizable(self.w('details_scrolledwindow').get_property('visible')) d.show() # don't steal focus when being called without arguments (i. e. # automatically launched) if len(sys.argv) == 1: d.set_focus_on_map(False) return_value = {'report': False, 'blacklist': False, 'remember': False, 'restart': False, 'examine': False} def dialog_crash_dismissed(widget): self.w('dialog_crash_new').hide() if widget is self.w('dialog_crash_new'): Gtk.main_quit() return elif widget is self.w('examine'): return_value['examine'] = True Gtk.main_quit() return # Force close or leave close app are the default actions with no specifier # in case of hangs or crash if self.w('relaunch_app').get_active() and self.desktop_info and self.offer_restart: return_value['restart'] = True if self.w('ignore_future_problems').get_active(): return_value['blacklist'] = True return_value['remember'] = self.w('remember_send_report_choice').get_active() if widget == self.w('continue_button'): return_value['report'] = self.allowed_to_report Gtk.main_quit() self.w('dialog_crash_new').connect('destroy', dialog_crash_dismissed) self.w('continue_button').connect('clicked', dialog_crash_dismissed) self.w('dont_send_button').connect('clicked', dialog_crash_dismissed) self.w('examine').connect('clicked', dialog_crash_dismissed) Gtk.main() return return_value def _ui_message_dialog(self, title, text, _type, buttons=Gtk.ButtonsType.CLOSE): self.md = Gtk.MessageDialog(message_type=_type, buttons=buttons) if 'http://' in text or 'https://' in text: if not isinstance(text, bytes): text = text.encode('UTF-8') text = GLib.markup_escape_text(text) text = re.sub(r'(https?://[a-zA-Z0-9._-]+(?:[a-zA-Z0-9_#?%+=./-])*)', r'<a href="\1">\1</a>', text) # turn URLs into links self.md.set_markup(text) else: # work around gnome #620579 self.md.set_property('text', text) self.md.set_title(title) result = self.md.run() self.md.hide() while Gtk.events_pending(): Gtk.main_iteration_do(False) self.md = None return result def ui_info_message(self, title, text): self._ui_message_dialog(title, text, Gtk.MessageType.INFO) def ui_error_message(self, title, text): self._ui_message_dialog(title, text, Gtk.MessageType.ERROR) def ui_shutdown(self): Gtk.main_quit() def ui_start_upload_progress(self): '''Open a window with an definite progress bar, telling the user to wait while debug information is being uploaded.''' self.w('progressbar_upload').set_fraction(0) self.w('window_report_upload').show() while Gtk.events_pending(): Gtk.main_iteration_do(False) def ui_set_upload_progress(self, progress): '''Set the progress bar in the debug data upload progress window to the given ratio (between 0 and 1, or None for indefinite progress). This function is called every 100 ms.''' if progress: self.w('progressbar_upload').set_fraction(progress) else: self.w('progressbar_upload').set_pulse_step(0.1) self.w('progressbar_upload').pulse() while Gtk.events_pending(): Gtk.main_iteration_do(False) def ui_stop_upload_progress(self): '''Close debug data upload progress window.''' self.w('window_report_upload').hide() while Gtk.events_pending(): Gtk.main_iteration_do(False) def ui_start_info_collection_progress(self): # show a spinner if we already have the main window if self.w('dialog_crash_new').get_property('visible'): self.spinner.show() self.spinner.start() elif self.crashdb.accepts(self.report): # show a progress dialog if our DB accepts the crash self.w('progressbar_information_collection').set_fraction(0) self.w('window_information_collection').show() while Gtk.events_pending(): Gtk.main_iteration_do(False) def ui_pulse_info_collection_progress(self): if self.w('window_information_collection').get_property('visible'): self.w('progressbar_information_collection').pulse() # for a spinner we just need to handle events while Gtk.events_pending(): Gtk.main_iteration_do(False) def ui_stop_info_collection_progress(self): if self.w('window_information_collection').get_property('visible'): self.w('window_information_collection').hide() else: self.spinner.hide() self.spinner.stop() while Gtk.events_pending(): Gtk.main_iteration_do(False) def ui_question_yesno(self, text): '''Show a yes/no question. Return True if the user selected "Yes", False if selected "No" or "None" on cancel/dialog closing. ''' result = self._ui_message_dialog('', text, Gtk.MessageType.QUESTION, Gtk.ButtonsType.YES_NO) if result == Gtk.ResponseType.YES: return True if result == Gtk.ResponseType.NO: return False return None def ui_question_choice(self, text, options, multiple): '''Show an question with predefined choices. options is a list of strings to present. If multiple is True, they should be check boxes, if multiple is False they should be radio buttons. Return list of selected option indexes, or None if the user cancelled. If multiple == False, the list will always have one element. ''' d = self.w('dialog_choice') d.set_default_size(400, -1) self.w('label_choice_text').set_label(text) # remove previous choices for child in self.w('vbox_choices').get_children(): child.destroy() b = None for option in options: if multiple: b = Gtk.CheckButton.new_with_label(option) else: # use previous radio button as group; work around GNOME#635253 if b: b = Gtk.RadioButton.new_with_label_from_widget(b, option) else: b = Gtk.RadioButton.new_with_label([], option) self.w('vbox_choices').pack_start(b, True, True, 0) self.w('vbox_choices').show_all() result = d.run() d.hide() if result != Gtk.ResponseType.OK: return None index = 0 result = [] for c in self.w('vbox_choices').get_children(): if c.get_active(): result.append(index) index += 1 return result def ui_question_file(self, text): '''Show a file selector dialog. Return path if the user selected a file, or None if cancelled. ''' md = Gtk.FileChooserDialog( text, parent=self.w('window_information_collection'), buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) result = md.run() md.hide() while Gtk.events_pending(): Gtk.main_iteration_do(False) if result == Gtk.ResponseType.OK: return md.get_filenames()[0] else: return None def ui_run_terminal(self, command): terminals = ['x-terminal-emulator', 'gnome-terminal', 'terminator', 'xfce4-terminal', 'xterm'] program = None for t in terminals: program = GLib.find_program_in_path(t) if program: break if not command: # test mode return have_display and program is not None subprocess.call([program, '-e', command]) # # Event handlers # def on_show_details_clicked(self, widget): sw = self.w('details_scrolledwindow') if sw.get_property('visible'): self.w('dialog_crash_new').set_resizable(False) sw.hide() widget.set_label(_('Show Details')) else: self.w('dialog_crash_new').set_resizable(True) sw.show() widget.set_label(_('Hide Details')) if not self.collect_called: self.collect_called = True self.ui_update_view(['ExecutablePath']) GLib.idle_add(lambda: self.collect_info(on_finished=self.ui_update_view)) return True def on_progress_window_close_event(self, widget, event=None): self.w('window_information_collection').hide() self.w('window_report_upload').hide() sys.exit(0) return True if __name__ == '__main__': if not have_display: apport.fatal('This program needs a running X session. Please see "man apport-cli" for a command line version of Apport.') app = GTKUserInterface() app.run_argv() ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/gtk/apport-gtk.desktop.in������������������������������������������������������������0000664�0000000�0000000�00000000445�13562354544�014745� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������[Desktop Entry] _Name=Report a problem... _Comment=Report a malfunction to the developers Exec=/usr/share/apport/apport-gtk -c %f Icon=apport Terminal=false Type=Application MimeType=text/x-apport; Categories=GNOME;GTK;Utility; NoDisplay=true StartupNotify=true X-Ubuntu-Gettext-Domain=apport ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/gtk/apport-gtk.ui��������������������������������������������������������������������0000664�0000000�0000000�00000067301�13562354544�013310� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.0 --> <object class="GtkTreeStore" id="details_treestore"> <columns> <!-- column-name gchararray1 --> <column type="gchararray"/> </columns> </object> <object class="GtkDialog" id="dialog_choice"> <property name="can_focus">False</property> <property name="border_width">5</property> <property name="title" translatable="yes">Apport</property> <property name="modal">True</property> <property name="type_hint">normal</property> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox6"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> <property name="spacing">2</property> <child internal-child="action_area"> <object class="GtkButtonBox" id="dialog-action_area6"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="button7"> <property name="label" translatable="yes">Cancel</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="use_action_appearance">False</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkButton" id="button13"> <property name="label" translatable="yes">OK</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="use_action_appearance">False</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">end</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkVBox" id="vbox2"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkLabel" id="label_choice_text"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label"><label></property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkVBox" id="vbox_choices"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">5</property> <property name="homogeneous">True</property> <child> <placeholder/> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="padding">10</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="padding">10</property> <property name="position">1</property> </packing> </child> </object> </child> <action-widgets> <action-widget response="-6">button7</action-widget> <action-widget response="-5">button13</action-widget> </action-widgets> </object> <object class="GtkWindow" id="dialog_crash_new"> <property name="can_focus">False</property> <property name="border_width">12</property> <property name="title" translatable="yes">Crash report</property> <property name="modal">True</property> <property name="window_position">center</property> <child> <object class="GtkBox" id="box1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> <property name="spacing">12</property> <child> <object class="GtkBox" id="box4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">12</property> <child> <object class="GtkImage" id="application_icon"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="valign">start</property> <property name="icon-name">dialog-error</property> <property name="icon-size">6</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkBox" id="box5"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="title_label"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes"><big><b>Sorry, an internal error happened.</b></big></property> <property name="use_markup">True</property> <property name="wrap">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkLabel" id="send_problem_notice_label"> <property name="visible">False</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">Send problem report to the developers?</property> <property name="use_markup">True</property> <property name="wrap">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkLabel" id="subtitle_label"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">If you notice further problems, try restarting the computer.</property> <property name="wrap">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> <child> <object class="GtkOverlay" id="details_overlay"> <child> <object class="GtkScrolledWindow" id="details_scrolledwindow"> <property name="height_request">250</property> <property name="can_focus">True</property> <property name="shadow_type">in</property> <child> <object class="GtkTreeView" id="details_treeview"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="model">details_treestore</property> <property name="headers_visible">False</property> <child internal-child="selection"> <object class="GtkTreeSelection" id="treeview-selection2"/> </child> </object> </child> </object> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">3</property> </packing> </child> <child> <object class="GtkBox" id="box6"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> <property name="spacing">3</property> <child> <object class="GtkCheckButton" id="remember_send_report_choice"> <property name="label" translatable="yes">Remember this in future</property> <property name="visible">False</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_action_appearance">False</property> <property name="active">False</property> <property name="draw_indicator">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkCheckButton" id="ignore_future_problems"> <property name="label" translatable="yes">Ignore future problems of this program version</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_action_appearance">False</property> <property name="draw_indicator">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkCheckButton" id="relaunch_app"> <property name="label" translatable="yes">Relaunch this application</property> <property name="visible">False</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_action_appearance">False</property> <property name="draw_indicator">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">4</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkBox" id="box2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">6</property> <child> <object class="GtkAlignment" id="alignment1"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkBox" id="box7"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">6</property> <child> <object class="GtkButton" id="show_details"> <property name="label" translatable="yes">Show Details</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="use_action_appearance">False</property> <signal name="clicked" handler="on_show_details_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkButton" id="examine"> <property name="label" translatable="yes">_Examine locally</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="use_action_appearance">False</property> <property name="use_underline">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkBox" id="box3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">6</property> <child> <object class="GtkButton" id="dont_send_button"> <property name="label" translatable="yes">Don't send</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="use_action_appearance">False</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkButton" id="continue_button"> <property name="label" translatable="yes">Send</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="use_action_appearance">False</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> </child> </object> <object class="GtkWindow" id="window_information_collection"> <property name="can_focus">False</property> <property name="border_width">12</property> <property name="title">Apport</property> <property name="resizable">False</property> <property name="window_position">center-always</property> <property name="destroy_with_parent">True</property> <signal name="delete-event" handler="on_progress_window_close_event" swapped="no"/> <child> <object class="GtkVBox" id="vbox15"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">12</property> <child> <object class="GtkVBox" id="vbox13"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="label_desc"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="yalign">0</property> <property name="label" translatable="yes"><big><b>Collecting problem information</b></big></property> <property name="use_markup">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="yalign">0</property> <property name="label" translatable="yes">Information is being collected that may help the developers fix the problem you report.</property> <property name="wrap">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkProgressBar" id="progressbar_information_collection"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="pulse_step">0.10000000149</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="padding">5</property> <property name="position">2</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkHButtonBox" id="hbuttonbox6"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="button_cancel_collecting"> <property name="label" translatable="yes">Cancel</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <property name="use_action_appearance">False</property> <signal name="clicked" handler="on_progress_window_close_event" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> </child> </object> <object class="GtkWindow" id="window_report_upload"> <property name="can_focus">False</property> <property name="border_width">12</property> <property name="title" translatable="yes">Uploading problem information</property> <property name="resizable">False</property> <property name="window_position">center-always</property> <property name="default_width">211</property> <property name="default_height">115</property> <property name="destroy_with_parent">True</property> <signal name="delete-event" handler="on_progress_window_close_event" swapped="no"/> <child> <object class="GtkVBox" id="vbox16"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">12</property> <child> <object class="GtkVBox" id="vbox17"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="label16"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="yalign">0</property> <property name="label" translatable="yes"><big><b>Uploading problem information</b></big></property> <property name="use_markup">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkLabel" id="label17"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="yalign">0</property> <property name="label" translatable="yes">The collected information is being sent to the bug tracking system. This might take a few minutes.</property> <property name="wrap">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkProgressBar" id="progressbar_upload"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="pulse_step">0</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="padding">5</property> <property name="position">2</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkHButtonBox" id="hbuttonbox7"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="button_cancel_upload"> <property name="label" translatable="yes">Cancel</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <property name="use_action_appearance">False</property> <signal name="clicked" handler="on_progress_window_close_event" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> </child> </object> </interface> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/java/��������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416101075�010772� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/java/README��������������������������������������������������������������������������0000664�0000000�0000000�00000001002�13562354544�011657� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport.jar contains the necessary class(es) for trapping uncaught Java exceptions. crash.class and crash.jar are used only by the test suite. The crash handler, when invoked, opens a pipe to the java_uncaught_exception script, and feeds it key/value pairs containing the relevant JVM state. There is currently no automatic integration of this handler. You have to do import com.ubuntu.apport.*; and in your main method install the handler with com.ubuntu.apport.ApportUncaughtExceptionHandler.install(); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/java/com/����������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�011564� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/java/com/ubuntu/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�013106� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/java/com/ubuntu/apport/��������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�014413� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/java/com/ubuntu/apport/ApportUncaughtExceptionHandler.java���������������������������0000664�0000000�0000000�00000006062�13562354544�023403� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package com.ubuntu.apport; /* * Apport handler for uncaught Java exceptions * * Copyright: 2010 Canonical Ltd. * Author: Matt Zimmerman <mdz@ubuntu.com> * * 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. See http://www.gnu.org/copyleft/gpl.html for * the full text of the license. */ import java.io.*; import java.util.HashMap; public class ApportUncaughtExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler { /* Write out an apport problem report with details of the * exception, then print it in the usual canonical format */ public void uncaughtException(Thread t, Throwable e) { //System.out.println("uncaughtException"); if (e instanceof ThreadDeath) return; HashMap problemReport = getProblemReport(t, e); //System.out.println("got problem report"); try { String handler_path = System.getenv("APPORT_JAVA_EXCEPTION_HANDLER"); if (handler_path == null) handler_path = "/usr/share/apport/java_uncaught_exception"; Process p = new ProcessBuilder(handler_path).start(); //System.out.println("started process"); OutputStream os = p.getOutputStream(); writeProblemReport(os, problemReport); //System.out.println("wrote problem report"); os.close(); try { p.waitFor(); } catch (InterruptedException ignore) { // ignored } } catch (java.io.IOException ioe) { System.out.println("could not call java_uncaught_exception"); } System.err.print("Exception in thread \"" + t.getName() + "\" "); e.printStackTrace(System.err); } public HashMap getProblemReport(Thread t, Throwable e) { HashMap problemReport = new HashMap(); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); problemReport.put("StackTrace", sw.toString()); problemReport.put("MainClassUrl", mainClassUrl(e)); return problemReport; } public void writeProblemReport(OutputStream os, HashMap pr) throws IOException { StringWriter sw = new StringWriter(); for(Object o : pr.keySet()) { String key = (String)o; String value = (String)pr.get(o); sw.write(key); sw.write("\0"); sw.write(value); sw.write("\0"); } os.write(sw.toString().getBytes()); } public static String mainClassUrl(Throwable e) { StackTraceElement[] stacktrace = e.getStackTrace(); String className = stacktrace[stacktrace.length-1].getClassName(); if (!className.startsWith("/")) { className = "/" + className; } className = className.replace('.', '/'); className = className + ".class"; java.net.URL classUrl = new ApportUncaughtExceptionHandler().getClass().getResource(className); return classUrl.toString(); } /* Install this handler as the default uncaught exception handler */ public static void install() { Thread.setDefaultUncaughtExceptionHandler(new ApportUncaughtExceptionHandler()); } } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/java/crash.java����������������������������������������������������������������������0000664�0000000�0000000�00000000334�14416101075�012735� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������import com.ubuntu.apport.*; class crash { public static void main(String[] args) { com.ubuntu.apport.ApportUncaughtExceptionHandler.install(); throw new RuntimeException("Can't catch this"); } } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/kde/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416106601�010614� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/kde/apport-kde�����������������������������������������������������������������������0000775�0000000�0000000�00000046672�14416106601�012627� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 '''Qt 5 Apport User Interface''' # Copyright (C) 2015 Harald Sitter <sitter@kde.org> # Copyright (C) 2007 - 2009 Canonical Ltd. # Author: Richard A. Johnson <nixternal@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import os.path import sys import os try: import apport from PyQt5.QtCore import (QByteArray, QLibraryInfo, QLocale, Qt, QTimer, QTranslator) from PyQt5.QtGui import (QIcon, QMovie, QPainter) from PyQt5.QtWidgets import (QApplication, QCheckBox, QDialog, QDialogButtonBox, QLabel, QLineEdit, QMessageBox, QProgressBar, QPushButton, QRadioButton, QTreeWidget, QTreeWidgetItem, QFileDialog) from PyQt5 import uic import apport.ui from apport import unicode_gettext as _ import sip # Work around for LP: 1282713 try: sip.setdestroyonexit(False) except AttributeError: pass except ImportError as e: # this can happen while upgrading python packages apport.fatal('Could not import module, is a package upgrade in progress? Error: %s', str(e)) def translate(self, prop): '''Reimplement method from uic to change it to use gettext.''' if prop.get('notr', None) == 'true': return self._cstring(prop) else: if prop.text is None: return '' text = prop.text.encode('UTF-8') return _(text) uic.properties.Properties._string = translate class Dialog(QDialog): '''Main dialog wrapper''' def __init__(self, ui, title, heading, text): QDialog.__init__(self, None, Qt.Window) uic.loadUi(os.path.join(os.path.dirname(sys.argv[0]), ui), self) self.setWindowTitle(title) if self.findChild(QLabel, 'heading'): self.findChild(QLabel, 'heading').setText('<h2>%s</h2>' % heading) self.findChild(QLabel, 'text').setText(text) def on_buttons_clicked(self, button): self.actionbutton = button if self.sender().buttonRole(button) == QDialogButtonBox.ActionRole: button.window().done(2) def addbutton(self, button): return self.findChild(QDialogButtonBox, 'buttons').addButton(button, QDialogButtonBox.ActionRole) class ChoicesDialog(Dialog): '''Choices dialog wrapper''' def __init__(self, title, text): Dialog.__init__(self, 'choices.ui', title, None, text) self.setMaximumSize(1, 1) def on_buttons_clicked(self, button): Dialog.on_buttons_clicked(self, button) if self.sender().buttonRole(button) == QDialogButtonBox.RejectRole: sys.exit(0) class ProgressDialog(Dialog): '''Progress dialog wrapper''' def __init__(self, title, heading, text): Dialog.__init__(self, 'progress.ui', title, heading, text) self.setMaximumSize(1, 1) def on_buttons_clicked(self, button): Dialog.on_buttons_clicked(self, button) if self.sender().buttonRole(button) == QDialogButtonBox.RejectRole: sys.exit(0) def set(self, value=None): progress = self.findChild(QProgressBar, 'progress') if not value: progress.setRange(0, 0) progress.setValue(0) else: progress.setRange(0, 1000) progress.setValue(value * 1000) class ReportDialog(Dialog): '''Report dialog wrapper''' def __init__(self, report, allowed_to_report, ui, desktop_info): if 'DistroRelease' not in report: report.add_os_info() distro = report['DistroRelease'] Dialog.__init__(self, 'bugreport.ui', distro.split()[0], '', '') self.details = self.findChild(QPushButton, 'show_details') self.details.clicked.connect(self.on_show_details_clicked) self.continue_button = self.findChild(QPushButton, 'continue_button') self.continue_button.clicked.connect(self.on_continue_clicked) self.closed_button = self.findChild(QPushButton, 'closed_button') self.closed_button.clicked.connect(self.on_closed_clicked) self.examine_button = self.findChild(QPushButton, 'examine_button') self.examine_button.clicked.connect(self.on_examine_clicked) self.cancel_button = self.findChild(QPushButton, 'cancel_button') self.cancel_button.clicked.connect(self.on_cancel_button_clicked) self.treeview = self.findChild(QTreeWidget, 'details') self.send_error_report = self.findChild(QCheckBox, 'send_error_report') self.ignore_future_problems = self.findChild(QCheckBox, 'ignore_future_problems') self.heading = self.findChild(QLabel, 'heading') self.text = self.findChild(QLabel, 'text') self.ui = ui self.collect_called = False icon = None report_type = report.get('ProblemType') self.spinner = QLabel('', parent=self.treeview) self.spinner.setGeometry(0, 0, 32, 32) self.movie = QMovie( os.path.join(os.path.dirname(sys.argv[0]), 'spinner.gif'), QByteArray(), self.spinner) self.spinner.setMovie(self.movie) self.spinner.setVisible(False) if allowed_to_report: self.send_error_report.setChecked(True) self.send_error_report.show() else: self.send_error_report.setChecked(False) self.send_error_report.hide() self.examine_button.setVisible(self.ui.can_examine_locally()) self.cancel_button.hide() if not self.ui.report_file: # This is a bug generated through `apport-bug $package`, or # `apport-collect $id`. # avoid collecting information again, in this mode we already have it if 'Uname' in report: self.collect_called = True self.ui.ui_update_view(self) self.heading.setText(_('Send problem report to the developers?')) self.text.hide() self.closed_button.hide() self.ignore_future_problems.hide() self.show_details.hide() self.cancel_button.show() self.send_error_report.setChecked(True) self.send_error_report.hide() self.continue_button.setText(_('Send')) self.showtree(True) elif report_type == 'KernelCrash' or report_type == 'KernelOops': self.ignore_future_problems.setChecked(False) self.ignore_future_problems.hide() self.heading.setText(_('Sorry, %s has experienced an ' 'internal error.') % distro) self.closed_button.hide() self.text.hide() icon = 'distributor-logo' elif report_type == 'Package': package = report.get('Package') if package: self.text.setText(_('Package: %s') % package) self.text.show() else: self.text.hide() self.closed_button.hide() self.ignore_future_problems.hide() self.heading.setText(_('Sorry, a problem occurred while installing software.')) else: # Regular crash. if desktop_info: icon = desktop_info.get('icon') if report_type == 'RecoverableProblem': self.heading.setText(_('The application %s has experienced an internal error.') % desktop_info['name']) else: self.heading.setText(_('The application %s has closed unexpectedly.') % desktop_info['name']) self.text.hide() pid = apport.ui.get_pid(report) still_running = pid and apport.ui.still_running(pid) if 'ProcCmdline' not in report or still_running or not self.ui.offer_restart: self.closed_button.hide() self.continue_button.setText(_('Continue')) else: self.closed_button.show() self.closed_button.setText(_('Leave Closed')) self.continue_button.setText(_('Relaunch')) else: icon = 'distributor-logo' self.heading.setText(_('Sorry, %s has experienced an ' 'internal error.') % distro) self.text.show() self.text.setText(_('If you notice further problems, ' 'try restarting the computer.')) self.closed_button.hide() self.continue_button.setText(_('Continue')) self.ignore_future_problems.setText(_('Ignore future problems of this type')) if report.get('CrashCounter'): self.ignore_future_problems.show() else: self.ignore_future_problems.hide() if report_type == 'RecoverableProblem': body = report.get('DialogBody', '') if body: del report['DialogBody'] # Set a maximum size for the dialog body, so developers do # not try to shove entire log files into this dialog. self.text.setText(body[:1024]) self.text.show() if icon: base = QIcon.fromTheme(icon).pixmap(42, 42) overlay = QIcon.fromTheme('dialog-error').pixmap(16, 16) p = QPainter(base) p.drawPixmap(base.width() - overlay.width(), base.height() - overlay.height(), overlay) p.end() self.application_icon.setPixmap(base) else: self.application_icon.setPixmap( QIcon.fromTheme('dialog-error').pixmap(42, 42)) if self.ui.report_file: self.showtree(False) def on_continue_clicked(self): self.done(1) def on_closed_clicked(self): self.done(2) def on_examine_clicked(self): self.done(3) def on_cancel_button_clicked(self): self.done(QDialog.Rejected) def on_show_details_clicked(self): if not self.treeview.isVisible(): self.details.setText(_('Hide Details')) self.showtree(True) else: self.details.setText(_('Show Details')) self.showtree(False) def collect_done(self): self.ui.ui_update_view(self) def showtree(self, visible): self.treeview.setVisible(visible) if visible and not self.collect_called: self.ui.ui_update_view(self, ['ExecutablePath']) QTimer.singleShot(0, lambda: self.ui.collect_info(on_finished=self.collect_done)) self.collect_called = True if visible: self.setMaximumSize(16777215, 16777215) else: self.setMaximumSize(1, 1) class UserPassDialog(Dialog): '''Username/Password dialog wrapper''' def __init__(self, title, text): Dialog.__init__(self, 'userpass.ui', title, None, text) self.findChild(QLabel, 'l_username').setText(_('Username:')) self.findChild(QLabel, 'l_password').setText(_('Password:')) def on_buttons_clicked(self, button): Dialog.on_buttons_clicked(self, button) if self.sender().buttonRole(button) == QDialogButtonBox.RejectRole: sys.exit(0) class MainUserInterface(apport.ui.UserInterface): '''The main user interface presented to the user''' def __init__(self): apport.ui.UserInterface.__init__(self) # Help unit tests get at the dialog. self.dialog = None self.progress = None # # ui_* implementation of abstract UserInterface classes # def ui_update_view(self, dialog, shown_keys=None): # report contents details = dialog.findChild(QTreeWidget, 'details') if shown_keys: keys = set(self.report.keys()) & set(shown_keys) else: keys = self.report.keys() details.clear() for key in sorted(keys): # ignore internal keys if key.startswith('_'): continue keyitem = QTreeWidgetItem([key]) details.addTopLevelItem(keyitem) # string value if not hasattr(self.report[key], 'gzipvalue') and \ hasattr(self.report[key], 'isspace') and \ not self.report._is_binary(self.report[key]): lines = self.report[key].splitlines() for line in lines: QTreeWidgetItem(keyitem, [str(line)]) if len(lines) < 4: keyitem.setExpanded(True) else: QTreeWidgetItem(keyitem, [_('(binary data)')]) def ui_present_report_details(self, allowed_to_report=True, modal_for=None): desktop_info = self.get_desktop_entry() self.dialog = ReportDialog(self.report, allowed_to_report, self, desktop_info) response = self.dialog.exec_() return_value = {'report': False, 'blacklist': False, 'remember': False, 'restart': False, 'examine': False} if response == QDialog.Rejected: return return_value elif response == 3: return_value['examine'] = True return return_value text = self.dialog.continue_button.text().replace('&', '') if response == 1 and text == _('Relaunch') and self.offer_restart: return_value['restart'] = True if self.dialog.send_error_report.isChecked(): return_value['report'] = True if self.dialog.ignore_future_problems.isChecked(): return_value['blacklist'] = True return return_value def ui_info_message(self, title, text): QMessageBox.information(None, _(title), _(text)) def ui_error_message(self, title, text): QMessageBox.information(None, _(title), _(text)) def ui_start_info_collection_progress(self): # show a spinner if we already have the main window if self.dialog and self.dialog.isVisible(): rect = self.dialog.spinner.parent().rect() self.dialog.spinner.setGeometry(rect.width() / 2 - self.dialog.spinner.width() / 2, rect.height() / 2 - self.dialog.spinner.height() / 2, self.dialog.spinner.width(), self.dialog.spinner.height()) self.dialog.movie.start() elif self.crashdb.accepts(self.report): # show a progress dialog if our DB accepts the crash self.progress = ProgressDialog( _('Collecting Problem Information'), _('Collecting problem information'), _('The collected information can be sent to the developers ' 'to improve the application. This might take a few ' 'minutes.')) self.progress.set() self.progress.show() QApplication.processEvents() def ui_pulse_info_collection_progress(self): if self.progress: self.progress.set() # for a spinner we just need to handle events QApplication.processEvents() def ui_stop_info_collection_progress(self): if self.progress: self.progress.hide() self.progress = None else: self.dialog.movie.stop() self.dialog.spinner.hide() QApplication.processEvents() def ui_start_upload_progress(self): self.progress = ProgressDialog( _('Uploading Problem Information'), _('Uploading problem information'), _('The collected information is being sent to the bug ' 'tracking system. This might take a few minutes.')) self.progress.show() def ui_set_upload_progress(self, progress): if progress: self.progress.set(progress) else: self.progress.set() QApplication.processEvents() def ui_stop_upload_progress(self): self.progress.hide() def ui_question_yesno(self, text): response = QMessageBox.question(None, '', 'text', QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel) if response == QMessageBox.Yes: return True if response == QMessageBox.No: return False return None def ui_question_choice(self, text, options, multiple): ''' Show a question with predefined choices. @options is a list of strings to present. @multiple - if True, choices should be QCheckBoxes, if False then should be QRadioButtons. Return list of selected option indexes, or None if the user cancelled. If multiple is False, the list will always have one element. ''' dialog = ChoicesDialog(_('Apport'), text) b = None for option in options: if multiple: b = QCheckBox(option) else: b = QRadioButton(option) dialog.vbox_choices.addWidget(b) response = dialog.exec_() if response == QDialog.Rejected: return 'cancel' response = [c for c in range(0, dialog.vbox_choices.count()) if dialog.vbox_choices.itemAt(c).widget().isChecked()] return response def ui_question_file(self, text): ''' Show a file selector dialog. Return path if the user selected a file, or None if cancelled. ''' response = QFileDialog.getOpenFileName(None, unicode(text, 'UTF-8')) if response.length() == 0: return None return str(response) def ui_question_userpass(self, text): '''Show a Username/Password dialog. Return a tuple (user, pass) or None if cancelled. ''' dialog = UserPassDialog(_('Apport'), text) response = dialog.exec_() if response == QDialog.Rejected: return None username = str(dialog.findChild(QLineEdit, 'e_username').text()) password = str(dialog.findChild(QLineEdit, 'e_password').text()) if len(username) == 0 or len(password) == 0: return None return (username, password) if __name__ == '__main__': if not os.environ.get('DISPLAY'): apport.fatal('This program needs a running X session. Please see "man apport-cli" for a command line version of Apport.') app = QApplication(sys.argv) app.setApplicationName('apport-kde') app.setApplicationDisplayName(_('Apport')) app.setWindowIcon(QIcon.fromTheme('apport')) translator = QTranslator() translator.load("qtbase_" + QLocale.system().name(), QLibraryInfo.location(QLibraryInfo.TranslationsPath)) app.installTranslator(translator) UserInterface = MainUserInterface() sys.exit(UserInterface.run_argv()) ����������������������������������������������������������������������apport-2.20.11/kde/apport-kde-mime.desktop.in�������������������������������������������������������0000664�0000000�0000000�00000000427�14416101075�015612� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������[Desktop Entry] _Name=Report a problem... _Comment=Report a malfunction to the developers Exec=/usr/share/apport/apport-kde -c %f Icon=apport Terminal=false Type=Application MimeType=text/x-apport; Categories=KDE; NoDisplay=true StartupNotify=true X-Ubuntu-Gettext-Domain=apport �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/kde/apport-kde-mimelnk.desktop.in����������������������������������������������������0000664�0000000�0000000�00000000361�13562354544�016330� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������[Desktop Entry] # This is a deprecated method for KDE3 to make it recognize this MimeType Type=MimeType _Comment=Apport crash file Hidden=false Icon=apport # This must not have a trailing ";" for KDE3 MimeType=text/x-apport Patterns=*.crash �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/kde/apport-kde.desktop.in������������������������������������������������������������0000664�0000000�0000000�00000000404�13562354544�014674� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������[Desktop Entry] _Name=Report a problem... _Comment=Report a malfunction to the developers Exec=/usr/share/apport/apport-kde -f Icon=apport Terminal=false Type=Application Categories=KDE;System; OnlyShowIn=KDE; StartupNotify=true X-Ubuntu-Gettext-Domain=apport ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/kde/bugreport.ui���������������������������������������������������������������������0000664�0000000�0000000�00000011251�13562354544�013200� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>CrashDialog</class> <widget class="QDialog" name="CrashDialog"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>567</width> <height>371</height> </rect> </property> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="windowTitle"> <string>Dialog</string> </property> <layout class="QGridLayout" name="gridLayout_2"> <item row="1" column="2"> <widget class="QLabel" name="heading"> <property name="sizePolicy"> <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text"> <string>heading</string> </property> <property name="wordWrap"> <bool>true</bool> </property> </widget> </item> <item row="11" column="0" colspan="3"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QPushButton" name="show_details"> <property name="text"> <string>Show Details</string> </property> </widget> </item> <item> <widget class="QPushButton" name="examine_button"> <property name="text"> <string>&Examine locally</string> </property> </widget> </item> <item> <widget class="QPushButton" name="cancel_button"> <property name="enabled"> <bool>true</bool> </property> <property name="text"> <string>&Cancel</string> </property> </widget> </item> <item> <spacer name="horizontalSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> <property name="sizeHint" stdset="0"> <size> <width>40</width> <height>20</height> </size> </property> </spacer> </item> <item> <widget class="QPushButton" name="closed_button"> <property name="text"> <string>Leave Closed</string> </property> </widget> </item> <item> <widget class="QPushButton" name="continue_button"> <property name="text"> <string>Continue</string> </property> </widget> </item> </layout> </item> <item row="6" column="2"> <widget class="QCheckBox" name="ignore_future_problems"> <property name="text"> <string>Ignore future problems of this program version</string> </property> </widget> </item> <item row="2" column="2"> <widget class="QLabel" name="text"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Minimum"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text"> <string>text</string> </property> <property name="alignment"> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> </property> </widget> </item> <item row="5" column="2"> <widget class="QCheckBox" name="send_error_report"> <property name="text"> <string>Send an error report to help fix this problem</string> </property> </widget> </item> <item row="1" column="0" rowspan="4"> <widget class="QLabel" name="application_icon"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Minimum"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="minimumSize"> <size> <width>0</width> <height>0</height> </size> </property> <property name="baseSize"> <size> <width>0</width> <height>0</height> </size> </property> <property name="text"> <string/> </property> <property name="alignment"> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> </property> </widget> </item> <item row="4" column="2"> <widget class="QTreeWidget" name="details"> <property name="sizePolicy"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <attribute name="headerVisible"> <bool>false</bool> </attribute> <column> <property name="text"> <string notr="true">1</string> </property> </column> </widget> </item> </layout> </widget> <resources/> <connections/> </ui> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/kde/choices.ui�����������������������������������������������������������������������0000664�0000000�0000000�00000004405�13562354544�012607� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>DialogChoices</class> <widget class="QDialog" name="DialogChoices"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>400</width> <height>182</height> </rect> </property> <property name="windowTitle"> <string>Dialog</string> </property> <layout class="QGridLayout" name="gridLayout_2"> <item row="0" column="0"> <widget class="QLabel" name="text"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Minimum"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text"> <string>text</string> </property> <property name="alignment"> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> </property> <property name="indent"> <number>1</number> </property> </widget> </item> <item row="1" column="0"> <widget class="QGroupBox" name="groupBox"> <property name="title"> <string/> </property> <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0"> <layout class="QVBoxLayout" name="vbox_choices"/> </item> </layout> </widget> </item> <item row="2" column="0"> <widget class="QDialogButtonBox" name="buttons"> <property name="standardButtons"> <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> </property> </widget> </item> </layout> </widget> <resources/> <connections> <connection> <sender>buttons</sender> <signal>accepted()</signal> <receiver>DialogChoices</receiver> <slot>accept()</slot> <hints> <hint type="sourcelabel"> <x>199</x> <y>164</y> </hint> <hint type="destinationlabel"> <x>199</x> <y>90</y> </hint> </hints> </connection> <connection> <sender>buttons</sender> <signal>rejected()</signal> <receiver>DialogChoices</receiver> <slot>reject()</slot> <hints> <hint type="sourcelabel"> <x>199</x> <y>164</y> </hint> <hint type="destinationlabel"> <x>199</x> <y>90</y> </hint> </hints> </connection> </connections> </ui> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/kde/error.ui�������������������������������������������������������������������������0000664�0000000�0000000�00000006370�13562354544�012326� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<ui version="4.0" > <class>ErrorDialog</class> <widget class="QDialog" name="ErrorDialog" > <property name="geometry" > <rect> <x>0</x> <y>0</y> <width>270</width> <height>191</height> </rect> </property> <property name="windowTitle" > <string>Dialog</string> </property> <layout class="QGridLayout" > <property name="margin" > <number>9</number> </property> <property name="spacing" > <number>6</number> </property> <item row="2" column="1" > <widget class="QCheckBox" name="checker" > <property name="text" > <string>checker</string> </property> </widget> </item> <item rowspan="3" row="0" column="0" > <widget class="QLabel" name="icon" > <property name="sizePolicy" > <sizepolicy> <hsizetype>0</hsizetype> <vsizetype>1</vsizetype> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text" > <string/> </property> <property name="alignment" > <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> </property> </widget> </item> <item row="0" column="1" > <widget class="QLabel" name="heading" > <property name="sizePolicy" > <sizepolicy> <hsizetype>1</hsizetype> <vsizetype>0</vsizetype> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text" > <string>heading</string> </property> <property name="indent" > <number>6</number> </property> </widget> </item> <item row="1" column="1" > <widget class="QLabel" name="text" > <property name="sizePolicy" > <sizepolicy> <hsizetype>5</hsizetype> <vsizetype>1</vsizetype> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text" > <string>text</string> </property> <property name="alignment" > <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> </property> <property name="wordWrap" > <bool>true</bool> </property> <property name="indent" > <number>6</number> </property> </widget> </item> <item row="3" column="0" colspan="2" > <widget class="QDialogButtonBox" name="buttons" > <property name="orientation" > <enum>Qt::Horizontal</enum> </property> <property name="standardButtons" > <set>QDialogButtonBox::Close</set> </property> </widget> </item> </layout> </widget> <resources/> <connections> <connection> <sender>buttons</sender> <signal>accepted()</signal> <receiver>ErrorDialog</receiver> <slot>accept()</slot> <hints> <hint type="sourcelabel" > <x>248</x> <y>254</y> </hint> <hint type="destinationlabel" > <x>157</x> <y>274</y> </hint> </hints> </connection> <connection> <sender>buttons</sender> <signal>rejected()</signal> <receiver>ErrorDialog</receiver> <slot>reject()</slot> <hints> <hint type="sourcelabel" > <x>316</x> <y>260</y> </hint> <hint type="destinationlabel" > <x>286</x> <y>274</y> </hint> </hints> </connection> </connections> </ui> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/kde/progress.ui����������������������������������������������������������������������0000664�0000000�0000000�00000005170�13562354544�013036� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<ui version="4.0" > <class>ProgressDialog</class> <widget class="QDialog" name="ProgressDialog" > <property name="geometry" > <rect> <x>0</x> <y>0</y> <width>422</width> <height>191</height> </rect> </property> <property name="windowTitle" > <string>Dialog</string> </property> <layout class="QVBoxLayout" > <property name="margin" > <number>9</number> </property> <property name="spacing" > <number>6</number> </property> <item> <widget class="QLabel" name="heading" > <property name="sizePolicy" > <sizepolicy> <hsizetype>1</hsizetype> <vsizetype>0</vsizetype> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text" > <string>heading</string> </property> </widget> </item> <item> <widget class="QLabel" name="text" > <property name="sizePolicy" > <sizepolicy> <hsizetype>5</hsizetype> <vsizetype>1</vsizetype> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text" > <string>text</string> </property> <property name="alignment" > <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> </property> <property name="wordWrap" > <bool>true</bool> </property> </widget> </item> <item> <widget class="QProgressBar" name="progress" > <property name="textVisible" > <bool>false</bool> </property> <property name="invertedAppearance" > <bool>false</bool> </property> </widget> </item> <item> <widget class="QDialogButtonBox" name="buttons" > <property name="orientation" > <enum>Qt::Horizontal</enum> </property> <property name="standardButtons" > <set>QDialogButtonBox::Cancel</set> </property> </widget> </item> </layout> </widget> <resources/> <connections> <connection> <sender>buttons</sender> <signal>accepted()</signal> <receiver>ProgressDialog</receiver> <slot>accept()</slot> <hints> <hint type="sourcelabel" > <x>248</x> <y>254</y> </hint> <hint type="destinationlabel" > <x>157</x> <y>274</y> </hint> </hints> </connection> <connection> <sender>buttons</sender> <signal>rejected()</signal> <receiver>ProgressDialog</receiver> <slot>reject()</slot> <hints> <hint type="sourcelabel" > <x>316</x> <y>260</y> </hint> <hint type="destinationlabel" > <x>286</x> <y>274</y> </hint> </hints> </connection> </connections> </ui> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/kde/userpass.ui����������������������������������������������������������������������0000664�0000000�0000000�00000006127�13562354544�013042� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>Dialog</class> <widget class="QDialog" name="Dialog"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>398</width> <height>159</height> </rect> </property> <property name="windowTitle"> <string>Dialog</string> </property> <widget class="QWidget" name="verticalLayoutWidget"> <property name="geometry"> <rect> <x>10</x> <y>10</y> <width>381</width> <height>139</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QLabel" name="text"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Minimum"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text"> <string>text</string> </property> <property name="alignment"> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> </property> <property name="indent"> <number>1</number> </property> </widget> </item> <item> <layout class="QFormLayout" name="formLayout"> <property name="fieldGrowthPolicy"> <enum>QFormLayout::AllNonFixedFieldsGrow</enum> </property> <item row="1" column="1"> <widget class="QLineEdit" name="e_username"/> </item> <item row="1" column="0"> <widget class="QLabel" name="l_username"> <property name="text"> <string>user</string> </property> </widget> </item> <item row="2" column="0"> <widget class="QLabel" name="l_password"> <property name="text"> <string>pass</string> </property> </widget> </item> <item row="2" column="1"> <widget class="QLineEdit" name="e_password"> <property name="echoMode"> <enum>QLineEdit::Password</enum> </property> </widget> </item> </layout> </item> <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> <property name="standardButtons"> <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> </property> </widget> </item> </layout> </widget> </widget> <resources/> <connections> <connection> <sender>buttonBox</sender> <signal>accepted()</signal> <receiver>Dialog</receiver> <slot>accept()</slot> <hints> <hint type="sourcelabel"> <x>248</x> <y>254</y> </hint> <hint type="destinationlabel"> <x>157</x> <y>274</y> </hint> </hints> </connection> <connection> <sender>buttonBox</sender> <signal>rejected()</signal> <receiver>Dialog</receiver> <slot>reject()</slot> <hints> <hint type="sourcelabel"> <x>316</x> <y>260</y> </hint> <hint type="destinationlabel"> <x>286</x> <y>274</y> </hint> </hints> </connection> </connections> </ui> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/man/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416106601�010624� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/man/apport-bug.1���������������������������������������������������������������������0000664�0000000�0000000�00000006217�13562354544�013010� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH apport\-bug 1 "September 08, 2009" "Martin Pitt" .SH NAME apport\-bug, apport\-collect \- file a bug report using Apport, or update an existing report .SH SYNOPSIS .B apport\-bug .B apport\-bug .I symptom \fR|\fI pid \fR|\fI package \fR|\fI program path \fR|\fI .apport/.crash file .B apport\-collect .I report-number .SH DESCRIPTION .B apport\-bug reports problems to your distribution's bug tracking system, using Apport to collect a lot of local information about your system to help the developers to fix the problem and avoid unnecessary question/answer turnarounds. You should always start with running .B apport\-bug without arguments, which will present a list of known symptoms. This will generate the most useful bug reports. If there is no matching symptom, you need to determine the affected program or package yourself. You can provide a package name or program name to .B apport\-bug\fR, e. g.: .RS 4 .nf apport\-bug firefox apport\-bug /usr/bin/unzip .fi .RE In order to add more information to the bug report that could help the developers to fix the problem, you can also specify a process ID instead: .RS 4 .nf $ pidof gnome-terminal 5139 $ apport\-bug 5139 .fi .RE As a special case, to report a bug against the Linux kernel, you do not need to use the full package name (such as linux-image-2.6.28-4-generic); you can just use .RS 4 .nf apport\-bug linux .fi .RE to report a bug against the currently running kernel. Finally, you can use this program to report a previously stored crash or bug report: .RS 4 .nf apport\-bug /var/crash/_bin_bash.1000.crash apport\-bug /tmp/apport.firefox.332G9t.apport .fi .RE Bug reports can be written to a file by using the .B \-\-save option or by using .B apport\-cli\fR. .B apport\-bug detects whether KDE or Gnome is running and calls .B apport\-gtk or .B apport\-kde accordingly. If neither is available, or the session does not run under X11, it calls .B apport\-cli for a command-line client. .SH UPDATING EXISTING REPORTS .B apport\-collect collects the same information as apport\-bug, but adds it to an already reported problem you have submitted. This is useful if the report was not originally filed through Apport, and the developers ask you to attach information from your system. .SH OPTIONS Please see the .BR apport\-cli(1) manpage for possible options. .SH ENVIRONMENT .TP .B APPORT_IGNORE_OBSOLETE_PACKAGES Apport refuses to create bug reports if the package or any dependency is not current. If this environment variable is set, this check is waived. Experts who will thoroughly check the situation before filing a bug report can define this in their .B ~/.bashrc or temporarily on the command line when calling .B apport\-bug\fR. .SH FILES apport crash files are written in to .B /var/crash by default, named uniquely per binary name and user id. They are not deleted after being sent to the bug tracker (but from cron when they get older than 7 days). You can extract the core file (if any) and other information using .B apport-unpack. .SH "SEE ALSO" .BR apport\-cli (1), .BR apport\-unpack (1) .SH AUTHOR .B apport and the accompanying tools are developed by Martin Pitt <martin.pitt@ubuntu.com>. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/man/apport-cli.1���������������������������������������������������������������������0000664�0000000�0000000�00000011374�14416106601�012766� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH apport\-cli 1 "August 01, 2007" "Martin Pitt" .SH NAME apport\-cli, apport\-gtk, apport\-kde \- Apport user interfaces for reporting problems .SH SYNOPSIS .B apport\-cli .B apport\-cli [ \fB\-\-save \fIfile\fR ] .I symptom \fR|\fI pid \fR|\fI package \fR|\fI program path \fR|\fI .apport/.crash file .B apport\-cli \-f .B apport\-cli \-f \-p .I package .B \-P .I pid .B apport\-cli \-u .I report-number Same options/arguments for .B apport\-gtk and .B apport\-kde\fR. .SH DESCRIPTION .B apport automatically collects data from crashed processes and compiles a problem report in .I /var/crash/\fR. This is a command line frontend for reporting those crashes to the developers. It can also be used to report bugs about packages or running processes. If symptom scripts are available, it can also be given the name of a symptom, or be called with just .B -f to display a list of known symptoms. When being called without any options, it processes the pending crash reports and offers to report them one by one. You can also display the entire report to see what is sent to the software developers. When being called with exactly one argument and no option, .B apport\-cli uses some heuristics to find out "what you mean" and reports a bug against the given symptom name, package name, program path, or PID. If the argument is a .B .crash or .B .apport file, it uploads the stored problem report to the bug tracking system. For desktop systems with a graphical user interface, you should consider installing the GTK or KDE user interface (apport-gtk or apport-kde). They accept the very same options and arguments. .B apport\-cli is mainly intended to be used on servers. .SH OPTIONS .TP .B \-f, \-\-file\-bug Report a (non-crash) problem. If neither .B \-\-package\fR, .B \-\-symptom\fR, or .B \-\-pid are specified, then it displays a list of available symptoms. If none are available, it aborts with an error. This will automatically attach information about your operating system and the package version etc. to the bug report, so that the developers have some important context. .TP .B \-s \fIsymptom\fR, \fB\-\-symptom\fR=\fIsymptom When being used in .B \-\-file\-bug mode, specify the symptom to report the problem about. .TP .B \-p \fIpackage\fR, \fB\-\-package\fR=\fIpackage When being used in .B \-\-file\-bug mode, specify the package to report the problem against. .TP .B \-P \fIpid\fR, \fB\-\-pid\fR=\fIpid When being used in .B \-\-file\-bug mode, specify the PID (process ID) of a running program to report the problem against. This can be determined with e. g. .B ps -ux\fR. .TP .B \-c \fIreport\fR, \fB\-\-crash\-file\fR=\fIreport Upload a previously processed stored report in an arbitrary file location. This is useful for copying a crash report to a machine with internet connection and reporting it from there. Files must end in .B .crash or .B .apport\fR. .TP .B \-u \fIreport-number\fR, \fB\-\-update\-report \fIreport-number Run apport information collection on an already existing problem report. The affected package is taken from the report by default, but you can explicitly specify one with \-\-package to collect information for a different package (this is useful if the report is assigned to the wrong package). .TP .B \-\-save \fIfilename In \-\-file\-bug mode, save the collected information into a file instead of reporting it. This file can then be reported with \-\-crash-file later on. .TP .B \-w, \fB\-\-window Point and click at the application window against which you wish to report the bug. Apport will automatically find the package name and generate a report for you. This option can be specially useful in situations when you do not know the name of the package, or if the application window has stopped responding and you cannot report the problem from the "Help" menu of the application. This option is not supported on Wayland. Users running Wayland should use another option such as .B -P to specify the application. .SH ENVIRONMENT .TP .B APPORT_IGNORE_OBSOLETE_PACKAGES Apport refuses to create bug reports if the package or any dependency is not current. If this environment variable is set, this check is waived. Experts who will thoroughly check the situation before filing a bug report can define this in their .B ~/.bashrc or temporarily when calling the apport frontend (\-cli, \-gtk, or \-kde). .SH FILES .TP .B /usr/share/apport/symptoms/*.py Symptom scripts. These ask a set of interactive questions to determine the package which is responsible for a particular problem. (For some problems like sound or storage device related bugs there are many places where things can go wrong, and it's not immediately obvious for a bug reporter where the problem is.) .SH AUTHOR .B apport and the accompanying tools are developed by Martin Pitt <martin.pitt@ubuntu.com>. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/man/apport-retrace.1�����������������������������������������������������������������0000664�0000000�0000000�00000013610�13562354544�013653� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH apport\-retrace 1 "September 09, 2006" "Martin Pitt" .SH NAME apport\-retrace \- regenerate a crash report's stack trace .SH SYNOPSIS .B apport\-retrace [ .I OPTIONS ] .I report .SH DESCRIPTION .B apport\-retrace regenerates the stack traces (both the simple and the threaded one) in an apport crash report from the included core dump. For this it figures out the set of necessary packages and their accompanying debug symbol packages, so that the regenerated stack trace will be fully symbolic and thus become much more useful for developers to fix the problem. .B apport\-retrace has two modes: By default it will just regenerate traces based on the packages which are currently installed in the system, i. e. it assumes that all necessary debug symbols for the report are installed. When specifying the .B \-S option, it creates a temporary "sandbox" and downloads and installs all necessary packages and debug symbols there. It will not do any changes to your system. This does not require root privileges, as it does not actually use the .B chroot() system call, but just supplies some "virtual root" options to .B gdb\fR. If you regularly use .B apport\-retrace in sandbox mode, it is highly recommended to use a permanent cache directory (the \fB\-\-cache\fR option). .I report is either the path to a .crash file, or a bug number. In the latter case, the information is downloaded from the bug report, and either one of the options .B \-g\fR, .B \-s\fR, or .B \-o\fR have to be used to process the report locally, or .B \-\-auth needs to be specified to attach the resulting stack traces back to the bug report. .SH OPTIONS .TP .B \-c, \-\-remove\-core Remove the core dump from the report after stack trace regeneration. By default it is retained. .TP .B \-g, \-\-gdb Start an interactive gdb session with the report's core dump. .TP .B \-s, \-\-stdout Write the new stack traces to stdout instead of putting them back into the report. .TP .B \-o \fIFILE\fR, \fB\-\-output=\fIFILE Write modified report to given file instead of changing the original report. .TP .B \-R, \-\-rebuild\-package\-info (Re\-)generate Packages: and Dependenencies: fields before retracing. This is particularly useful if you want to retrace a .crash report before it was completed by running it through the UI data collection phase. However, this only works when you run this on the very same system where the crash happened. .TP .B \-S \fICONFIG_DIR\fR, \fB\-\-sandbox=\fICONFIG_DIR Build a temporary sandbox and download/install the necessary packages and debug symbols in there; without this option it assumes that the necessary packages and debug symbols are already installed in the system. The argument points to the packaging system configuration directory, which needs to have a subdirectory for the .B DistroRelease field in the report (e. g. "config/Ubuntu 11.04/"), which contains the package system configuration. When using the apt/dpkg backend (Debian/Ubuntu based distributions), the per-release directory must contain an apt .B sources.list file with package sources for this release, plus the corresponding debug symbol package repository. Sandboxing is not implemented for other (RPM based) backends right now. If .I CONFIG_DIR is "system", it will use the system configuration files, but will then only be able to retrace crashes that happened on the currently running release. .TP .B \-v, \-\-verbose Report download/install progress when installing packages in sandbox mode. .TP .B \-p, \-\-extra\-package Install an additional package for retracing into the sandbox. May be specified multiple times. .TP .B \-C \fIDIR\fR, \fB\-\-cache=\fIDIR Permanent cache directory for downloaded package indexes and packages for sandbox mode. If not specified all indexes and packages will have to be re-downloaded at each run of .B apport\-retrace\fR. If you use sandbox mode regularly, using a permanent cache directory is highly recommended. .TP .B \-\-sandbox\-dir=\fIDIR Permanent directory for the sandbox of extracted packages. If not specified all cached packages will have to be re-extracted at each run of .B apport\-retrace\fR. If you use sandbox mode regularly, using a permanent cache directory is highly recommended. .TP .B \-h, \-\-help Print a short help that documents all options. .TP .B \-\-auth=\fIauthfile If a bug number is given without any of the options .B \-g\fR, .B \-s\fR, or .B \-o\fR, then the retraced stack traces are attached to the bug. Since this needs authentication, an authentication file for the crash database must be specified. This could e. g. be the standard .B cookies.txt from Firefox' profile directory if the crash database uses cookie based authentication. .TP .B \-\-confirm Display retraced stack traces and ask for confirmation before uploading them to the bug report. This option is ignored when retracing report files. .TP .B \-\-duplicate\-db=\fIdbfile Specify path to the duplicate check database (in SQLite format). The database will be created and initialized if it does not exist. If not specified, .B apport\-retrace will not check for duplicates. .SH EXAMPLES Reprocess recent local gedit crash report after the debug symbol packages have been installed into the system, and show reprocessed stack traces on stdout: .RS 4 apport\-retrace \-\-stdout /var/crash/_usr_bin_gedit.1000.crash .RE Build a sandbox with all necessary packages and debug symbols, and start a gdb session on the report's core file: .RS 4 apport\-retrace \-\-gdb \-\-sandbox system \-\-cache ~/.cache/apport\-retrace /var/crash/_usr_bin_gedit.1000.crash .RE Download crash report bug #12345, run in sandbox mode with local configuration files, and reupload updated traces to the bug (as neither \-g or \-s is specified): .RS 4 apport\-retrace \-\-auth ~/.cache/apport/launchpad.credentials \-S ~/retrace-conf/ \-C ~/.cache/apport\-retrace 12345 .RE .SH AUTHOR .B apport and the accompanying tools are developed by Martin Pitt <martin.pitt@ubuntu.com>. ������������������������������������������������������������������������������������������������������������������������apport-2.20.11/man/apport-unpack.1������������������������������������������������������������������0000664�0000000�0000000�00000001427�13562354544�013512� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH apport\-unpack 1 "September 09, 2006" "Martin Pitt" .SH NAME apport\-unpack \- extract the fields of a problem report to separate files .SH SYNOPSIS .B apport\-unpack .I report target\-directory .SH DESCRIPTION A problem report, as produced by .B apport is a single file with a set of key/value pairs in the RFC822 syntax. This tool disassembles a report such that the value of each entry is written into a separate file, with the key as file name. This is particularly useful for large binary data like the core dump. .I report is either a path to an existing apport crash report, or '\-' to read from stdin. The .I target\-directory must either be nonexisting or empty. .SH AUTHOR .B apport and the accompanying tools are developed by Martin Pitt <martin.pitt@ubuntu.com>. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/man/apport-valgrind.1����������������������������������������������������������������0000664�0000000�0000000�00000007311�13562354544�014035� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH apport\-valgrind 1 "February 12, 2013" "Kyle Nitzsche" .SH NAME apport\-valgrind \- valgrind wrapper that first downloads debug symbols .SH SYNOPSIS .B apport\-valgrind [ .I OPTIONS ] .I EXECUTABLE .SH DESCRIPTION .B apport\-valgrind is a valgrind wrapper that automatically downloads related available debug symbols and provides them to valgrind's memcheck tool, which is executed. The output is a valgrind log file ("valgrind.log") that contains stack traces (with as many symbols resolved as available) and that shows memory leaks. By default, a temporary cache directory is created to hold the latest debug symbol packages. These are unpacked into a temporary sandbox directory. The path to the sandbox directory is provided to valgrind as an additional location for symbol files. You may create and use persistent cache and sandbox directories to save time across multiple executions, thus preventing the need to recreate them each time. Downloading all packages into the the cache directory each time is particularly time consuming. It is recommended to update your system before execution. This ensures your runtime environment is consistent with the latest downloaded symbol packages and therefore results in a more complete stack trace from valgrind. .I EXECUTABLE is the program to run under valgrind. Always terminate the .I EXECUTABLE in its usual way. Exit it from the GUI if there is one. If not, use the most appropriate method. Different techniques are used to determine which packages should be unpacked into the sandbox depending on whether .I EXECUTABLE is packaged (installed by a debian package) or not (for example something created for development or testing). A packaged .I EXECUTABLE has debian dependencies that are used. For an unpackaged .I EXECUTABLE\fR, the shared object files are found with ldd and the packages for these are used. .SH OPTIONS .TP .B \-C \fICDIR\fR, \-\-cache=\fICDIR\fR Reuse a previously created cache dir (\fICDIR\fR) or, if it does not exist, create it. .TP .B \-\-sandbox\-dir=\fISDIR\fR Reuse a previously created sandbox dir (\fISDIR\fR) or, if it does not exist, create it .TP .B \-\-no\-sandbox Do not create or reuse a sandbox directory for additional debug symbols but rely only on installed debug symbols. This speeds execution time but may result in an incomplete and less useful valgrind log if you do not have all appropriate debug symbol packages installed. .TP .B \-p, \-\-extra-package Specify an extra package (or packages) to unpack in the sandbox. Useful to add additional debug symbol packages that result in more complete valgrind logs. .TP .B \-v, \-\-verbose Report download/install progress when installing packages in sandbox mode. .TP .B \-l \fILOGFILE\fR, \-\-log=\fILOGFILE\fR Specify the file name for the generated valgrind log file. Default is: valgrind.log .TP .B \-h, \-\-help Display short help that documents all options. .SH EXAMPLES Create and use temporary cache and sandbox directories: .RS 4 apport\-valgrind .I EXECUTABLE .RE Reuse or create cache dir: .RS 4 apport\-valgrind \-C .I CDIR .I EXECUTABLE .RE Reuse or create sandbox dir: .RS 4 apport\-valgrind \-\-sandbox\-dir .I SDIR .I EXECUTABLE .RE .SH KNOWN ISSUES If you abnormally terminate the executable you are running under valgrind, temporary directories may not be deleted and processes may not all terminate. For example, if the executable does not normally terminate on ctrl+c, pressing ctrl+c in the terminal may cause apport-valgrind and valgrind to terminate, but may not terminate the executable and may not delete the temporary directories. .SH AUTHORS Developed by Martin Pitt <martin.pitt@ubuntu.com>, Alex Chiang <alex.chiang@canonical.com> and Kyle Nitzsche <kyle.nitzsche@canonical.com> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/man/dupdb-admin.1��������������������������������������������������������������������0000664�0000000�0000000�00000003236�13562354544�013112� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH dupdp\-admin 1 "August 01, 2007" "Martin Pitt" .SH NAME dupdb\-admin \- Manage the duplicate database for apport\-retrace. .SH SYNOPSIS .B dupdb\-admin \-f .I dbpath .B dump .B dupdb\-admin \-f .I dbpath .B changeid .I oldid newid .B dupdb\-admin \-f .I dbpath .B publish .I path .SH DESCRIPTION .BR apport\-retrace (1) has the capability of checking for duplicate bugs (amonst other things). It uses an SQLite database for keeping track of master bugs. .B dupdb\-admin is a small tool to manage that database. The central concept in that database is a "crash signature", a string that uniquely identifies a particular crash. It is built from the executable path name, the signal number or exception name, and the topmost functions of the stack trace. The database maps crash signatures to the 'master' crash id and thus can close duplicate crash reports with a reference to that master ID. It also tracks the status of crashes (open/fixed in a particular version) to be able to identify regressions. .SH MODES .TP .B dump Print a list of all database entries. .TP .B changeid Change the associated crash ID for a particular crash. .TP .B publish Export the duplicate database into a set of text files in the given directory which is suitable for WWW publishing. If the directory already exists, it will be updated. The new content is built in a new directory which is the given one with ".new" appended, then moved to the given name in an almost atomic way. .SH OPTIONS .TP .B \-f \fIpath\fR, \fB\-\-database-file\fR=\fIpath Path to the duplicate database SQLite file. .SH AUTHOR .B apport and the accompanying tools are developed by Martin Pitt <martin.pitt@ubuntu.com>. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/pm-utils/����������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�011637� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/pm-utils/sleep.d/��������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�013171� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/pm-utils/sleep.d/000record-status����������������������������������������������������0000775�0000000�0000000�00000000503�13562354544�016134� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # # Record the current operation to allow failure detection. STAMPFILE="/var/lib/pm-utils/status" case "$1" in hibernate|suspend) mkdir -p `dirname $STAMPFILE` echo "$1" >"$STAMPFILE" ;; thaw|resume) rm -f "$STAMPFILE" ;; esac ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/����������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416106601�010467� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ace.po����������������������������������������������������������������������������0000664�0000000�0000000�00000077423�14416106601�011574� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Acehnese translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Acehnese <ace@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/af.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077426�14416106601�011435� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Afrikaans translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Afrikaans <af@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: af\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/am.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000113005�14416106601�011424� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Amharic translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Amharic <am@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: am\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "የ ተፈጠረው" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "መሰረዣ" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "እሺ" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "የ ግጭት መግለጫ" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>አዝናለሁ, የ ውስጥ ስህተት ተፈጥሯል</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "ተጨማሪ ችግር ከ ገጠምዎት: ኮምፒዩተሩን እንደገና ያስነሱ" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "የ ችግሩን መግለጫ ይላኩ ችግሩን እንዲጠገን" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "ለዚህ ፕሮግራም እትም ወደ ፊት ችግሩን መተው" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "ዝርዝሮች ማሳያ" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "አካባቢ _መመርመሪያ" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "እንደ ተዘጋ መተው" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "ይቀጥሉ" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "የ እርስዎ መግለጫ መረጃ እየተሰበሰበ ነው: አበልፃጊዎቹ ችግሩን እንዲጠግኑ የሚረዳ" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "የ ተሰበሰበው መረጃ ለ አበልጻጊዎች እየተላከ ነው: ይህ ትንሽ ጊዜ ይወስዳል" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(ባይነሪ ዳታ)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "አዝናለሁ መተግበሪያው %s በ ድንገት ተቋርጧል" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "አዝናለሁ %s በ ድንገት ተዘግቷል" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "አዝናለሁ, %s የ ውስጥ ስህተት ተፈጥሯል" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "የ ችግሩን መግለጫ ለ አበልጻጊዎቹ ልላክ?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "መላኪያ" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "አስገድዶ መዝጊያ" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "እንደገና ማስጀመሪያ" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "መተግበሪያው %s አይመልስም" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "ፕሮግራሙ %s አይመልስም" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "ጥቅል: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "አዝናለሁ, ሶፍትዌሩ በሚገጠም ጊዜ ችግር ተፈጥሯል" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "መተግበሪያው %s የ ውስጥ ችግር ገጥሞታል" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "መተግበሪያው %s በ ድንገት ተዘግቷል" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "ለ ወደፊት እንዲህ አይነቱን ችግር ተወው" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "ዝርዝሮች መደበቂያ" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "የ ተሰበሰበው መረጃ ለ አበልጻጊዎች ይላካል መተግበሪያውን ለ ማሻሻል: ይህ ትንሽ ጊዜ ይወስዳል" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "የ ስርአት መረጃ መሰብሰቢያ" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "ማረጋገጫ ያስፈልጋል የ ስርአት መረጃ ለ መሰብሰብ ለዚህ ችግር መግለጫ" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "የ ስርአት ችግር መግለጫ" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "እባክዎን የ እርስዎን የ መግቢያ ቃል ያስገቡ የ ስርአቱ ፕሮግራም ችግር ጋር ለ መድረስ" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "ችግሩን ለ አበልጻጊዎች ማሳወቂያ" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "ለ ዝርዝር ይህን የ man ገጽ ይመልከቱ" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "የ መግቢያ ፋይል ስም ይወስኑ የ ተፈጠረውን በ valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "በቅድሚያ የ ተፈጠረውን የ አሸዋ ሳጥን ዳይሬክቶሪ መጠቀሚያ (SDIR) ወይንም ካልነበረ አዲስ መፍጠሪያ" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "በቅድሚያ የ ተፈጠረውን የ ማስታወሻ ዳይሬክቶሪ እንደገና መጠቀሚያ (CDIR) ወይንም ካልነበረ አዲስ መፍጠሪያ" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "ተጨማሪ ጥቅል በ አሸዋ ሳጥን ውስጥ መግጠሚያ (በርካታ ጊዜ መግለጽ ይቻላል)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "ስህተት: %s ይህን መፈጸም አይቻልም: በማስቆም ላይ" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "የ እርስዎ ስርአት አሁን ያልተረጋጋ ሊሆን ይችላል እና እንደገና ማስነሳት ይፈልጋል" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "የ ጥቅል መረጃ መግለጫ እንደገና መገንቢያ" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "መፍጠሪያ እና መጠቀሚያ ከ ሶስተኛ-አካል ማጠራቀሚያዎች በ መግለጫው ከ ተገለጸው መሰረት ውስጥ" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "እሺ ይህን ማያያዣ ልላክ? [አዎ/አይ]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "ይህ ጥቅል በ ትክክል አልተገጠመም" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "ይህ ዋናው %s ጥቅል አይደለም: እባክዎን የ ሶስተኛ አካል ጥቅል ያስወግዱ እና እንደገና ይሞክሩ" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "እርስዎ አንዳንድ የ ተተወ አሮጌ ጥቅል እትም ገጥመዋል: እባክዎን የሚቀጥሉትን ጥቅሎች ያሻሽሉ እና ችግሩ በ ድጋሚ ይታይ " "እንደሆን ይመርምሩ:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "የ እርስዎ ኮምፒዩተር በቂ የሆነ ነፃ ቦታ የለውም ራሱ በራሱ ችግሩን ለ መመርመር እና መግለጫ ለ አበልፃጊዎች ለ መላክ" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "ዋጋ የሌለው የ ችግር መግለጫ" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "እርስዎ እዚህ የ ችግር መግለጫ ጋር ለ መድረስ አይችሉም" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "ይህን መግለጫ ለማስኬድ ዝግጁ የሆነ በቂ የሆነ የ ዲስክ ቦታ የለም" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "ምንም ጥቅል አልተመረጠም" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "ዋጋ የሌለው PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "መግለጫ መፍጠር አልተቻለም" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "የ ችግር መግለጫ ማሻሻያ" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "ያልታወቀ ምልክት" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "ምልክቱ \"%s\" አይታወቅም" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "ተጨማሪ ማብራሪያ ከ መግለጫ ጋር ይጨምሩ: በርካታ ጊዜ መግለጽ ይቻላል" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "መስኮቱን ይጫኑ እንደ ኢላማ የ ችግሩን መግለጫ ለ መሙላት" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "የ ዌብ መቃኛ ማስጀመር አልተቻለም ለ መክፈት %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "ከ ግጭት ዳታቤዝ ጋር መገናኘት አልተቻለም: እባክዎን የ እርስዎን ኢንተርኔት ግንኙነት ይመርምሩ" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "የ እርስዎ ስርአት ይህን የ ግጭት መግለጫ ለመላክ በቂ ማስታወሻ የለውም" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "ይህን ችግር መላክ አይቻልም:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "ይህ ችግር ቀደም ብሎ የታወቀ ነው" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "ይህ ችግር ቀደም ብሎ ለ አበልፃጊዎች ተልኳል: እናመሰግናለን!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "ምን ማድረግ ነው የሚፈልጉት? ያለው ምርጫው ይህ ነው:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i ባይቶች)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "መግለጫ &መላኪያ (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "አካባቢ &መመርመሪያ" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "መግለጫ &መመልከቻ" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "ለዚህ ፕሮግራም እትም የ ወደፊት ግጭቶችን መሰረዣ እና መተው" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&መሰረዣ" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "የ ችግር መግለጫ ፋይል:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "ተመርጧል: %s. በርካታ ምርጫዎች:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "መንገድ ወደ ፋይል (ያስገቡ ለ መሰረዝ):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "ፋይሉ አልነበረም" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "እርስዎ ለ መቀጠል የሚቀጥለውን URL መጎብኘት አለብዎት:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "እርስዎ አሁን መቃኛ ማስጀመር ይችላሉ: ወይንም ይህን URL ኮፒ ያድርጉ እና በሌላ ኮምፒዩተር መቃኛ ውስጥ ይለጥፉ:" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "መቃኛ አሁን ማስጀመሪያ" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "ምንም የ ግጭት መግለጫ የሚጠብቅ የለም: ይህን --እርዳታ ለ በለጠ መረጃ ይሞክሩ" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/an.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077426�14416106601�011445� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Aragonese translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Aragonese <an@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: an\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/apport.pot������������������������������������������������������������������������0000664�0000000�0000000�00000054607�14416106601�012534� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-03-10 08:16-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:53 msgid "" "Build another temporary sandbox for installing gdb and its dependencies " "using the same release as the report rather than whatever version of gdb you " "have installed." msgstr "" #: ../bin/apport-retrace.py:55 msgid "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 msgid "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:73 msgid "Do not add StacktraceSource to the report." msgstr "" #: ../bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "Please enter your password to access problem reports of system programs" msgstr "" #: ../apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:303 msgid "unknown program" msgstr "" #: ../apport/ui.py:304 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:306 ../apport/ui.py:1427 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:307 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:362 ../apport/ui.py:370 ../apport/ui.py:513 #: ../apport/ui.py:516 ../apport/ui.py:721 ../apport/ui.py:1233 #: ../apport/ui.py:1399 ../apport/ui.py:1403 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:363 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:366 msgid "Error" msgstr "" #: ../apport/ui.py:367 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:405 ../apport/ui.py:494 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:406 msgid "The specified process ID does not exist." msgstr "" #: ../apport/ui.py:409 msgid "Not your PID" msgstr "" #: ../apport/ui.py:410 msgid "The specified process ID does not belong to you." msgstr "" #: ../apport/ui.py:461 msgid "No package specified" msgstr "" #: ../apport/ui.py:462 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:491 msgid "Permission denied" msgstr "" #: ../apport/ui.py:492 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:495 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:514 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:517 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:733 ../apport/ui.py:738 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:561 ../apport/ui.py:607 ../apport/ui.py:623 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:562 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:571 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-bug" "\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:608 ../apport/ui.py:624 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:675 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:692 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:693 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:724 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:734 ../apport/ui.py:739 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:753 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:755 msgid "Specify package name." msgstr "" #: ../apport/ui.py:757 ../apport/ui.py:808 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:787 msgid "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:790 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:792 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:794 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:796 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:798 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:800 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:802 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:804 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:806 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:810 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:961 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:962 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:963 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:965 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1001 msgid "Can't remember send report status settings" msgstr "" #: ../apport/ui.py:1002 msgid "" "Saving crash reporting state failed. Can't set auto or never reporting mode." msgstr "" #: ../apport/ui.py:1061 ../apport/ui.py:1071 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1086 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1133 ../apport/ui.py:1190 ../apport/ui.py:1405 msgid "This problem report is damaged and cannot be processed." msgstr "" #: ../apport/ui.py:1141 #, python-format msgid "" "This report is about a snap published by %s. Contact them via %s for help." msgstr "" #: ../apport/ui.py:1144 #, python-format msgid "" "This report is about a snap published by %s. No contact address has been " "provided; visit the forum at https://forum.snapcraft.io/ for help." msgstr "" #: ../apport/ui.py:1148 msgid "This report is about a package that is not installed." msgstr "" #: ../apport/ui.py:1152 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1159 #, python-format msgid "" "You are about to report a bug against the deb package, but you also a have " "snap published by %s installed. You can contact them via %s for help. Do you " "want to continue with the bug report against the deb?" msgstr "" #: ../apport/ui.py:1161 #, python-format msgid "" "You are about to report a bug against the deb package, but you also a have " "snap published by %s installed. For the snap, no contact address has been " "provided; visit the forum at https://forum.snapcraft.io/ for help. Do you " "want to continue with the bug report against the deb?" msgstr "" #: ../apport/ui.py:1234 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1252 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1253 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1353 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1365 msgid "Network problem" msgstr "" #: ../apport/ui.py:1367 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1394 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1395 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1430 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1486 ../apport/ui.py:1493 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1487 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1494 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../gtk/apport-gtk.ui.h:1 ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 #: ../kde/apport-kde.py:524 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:6 ../gtk/apport-gtk.py:181 ../bin/apport-cli.py:194 #: ../kde/apport-kde.py:186 msgid "Send problem report to the developers?" msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../gtk/apport-gtk.py:297 ../kde/apport-kde.py:241 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:8 msgid "Remember this in future" msgstr "" #: ../gtk/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../gtk/apport-gtk.ui.h:10 msgid "Relaunch this application" msgstr "" #: ../gtk/apport-gtk.ui.h:11 ../gtk/apport-gtk.py:204 ../gtk/apport-gtk.py:575 #: ../kde/apport-kde.py:292 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../gtk/apport-gtk.ui.h:13 msgid "Don't send" msgstr "" #: ../gtk/apport-gtk.ui.h:14 ../gtk/apport-gtk.py:188 ../kde/apport-kde.py:194 msgid "Send" msgstr "" #: ../gtk/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../gtk/apport-gtk.ui.h:17 ../bin/apport-cli.py:267 ../kde/apport-kde.py:435 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:19 ../kde/apport-kde.py:436 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../gtk/apport-gtk.py:146 ../bin/apport-cli.py:166 ../kde/apport-kde.py:363 msgid "(binary data)" msgstr "" #: ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../gtk/apport-gtk.py:169 ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../gtk/apport-gtk.py:216 ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../gtk/apport-gtk.py:259 ../kde/apport-kde.py:208 #, python-format msgid "Package: %s" msgstr "" #: ../gtk/apport-gtk.py:265 ../kde/apport-kde.py:214 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../gtk/apport-gtk.py:274 ../gtk/apport-gtk.py:289 ../kde/apport-kde.py:220 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../gtk/apport-gtk.py:277 ../kde/apport-kde.py:223 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../gtk/apport-gtk.py:299 ../kde/apport-kde.py:245 msgid "Ignore future problems of this type" msgstr "" #: ../gtk/apport-gtk.py:579 ../kde/apport-kde.py:289 msgid "Hide Details" msgstr "" #: ../bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 msgid "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:254 ../kde/apport-kde.py:407 msgid "Collecting problem information" msgstr "" #: ../bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #: ../data/general-hooks/ubuntu.py:186 msgid "" "An Ubuntu package has a file conflict with a package that is not a genuine " "Ubuntu package." msgstr "" #: ../data/general-hooks/ubuntu.py:194 msgid "You have already encountered this package installation failure." msgstr "" #: ../data/general-hooks/ubuntu.py:210 msgid "" "Your system was initially configured with grub version 2, but you have " "removed it from your system in favor of grub 1 without configuring it. To " "ensure your bootloader configuration is updated whenever a new kernel is " "available, open a terminal and run:\n" "\n" " sudo apt-get install grub-pc\n" msgstr "" #: ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../kde/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../kde/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" �������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ar.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000127235�14416106601�011443� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Arabic translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2013-08-07 22:55+0000\n" "Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n" "Language-Team: Arabic <ar@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ar\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "بلاغ انهيار" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>عُذرًا، حدث خطأ داخلي.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "إذا لاحظت المزيد من المشاكل، جرّب إعادة تشغيل الحاسوب." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "إرسال تقرير عن الخطأ للمساعدة في إصلاح هذه المشكلة" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "تجاهل الانهيارات المستقبلية لإصدارة البرنامج هذه" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "أظهر التفاصيل" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "اتركه مغلقا" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "واصِل" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>يجمع معلومات عن المشكلة</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "يجري جمع المعلومات التي قد تساعد المطورين في إصلاح المشكلة المبلغ عنها." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "يرفع معلومات المشكلة" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>يرفع معلومات المشكلة</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "يجرى إرسال المعلومات التي جُمِعت إلى نظام تتبع العِلَل، وقد يستغرق هذا بضع " "دقائق." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(بيانات ثنائية)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "عُذرًا، توقف التطبيق \"%s\" فجأة" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "عُذرًا، أُغلق \"%s\" فجأة." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "عُذرًا، واجه \"%s\" خطأ داخليا." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "أأبلغ المطورين عن المشكلة؟" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "أرسل" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "شغّله مجددا" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "الحزمة: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "عُذرًا، حدث خطأ أثناء تثبيت البرنامج." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "واجه تطبيق \"%s\" خطأ داخليا." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "أُغلق تطبيق \"%s\" فجأة." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "تجاهل الانهيارات المستقبلية لهذا النوع" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "أخفِ التفاصيل" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "اسم المستخدم:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "كلمة السر:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "يجمع معلومات عن المشكلة" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "يمكن إرسال المعلومات التي جُمِعت إلى المطورين لتحسين التطبيق، قد يستغرق هذا " "بضع دقائق." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "الاستيثاق مطلوب لجمع معلومات النظام لتقرير العلة هذا" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "برجاء إدخال كلمة سرك للنفاذ إلى تقارير المشاكل لبرامج النظام" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "أبلغ عن مشكلة..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "أبلغ المطورين عن خلل" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "قد يصبح نظامك غير مستقر الآن وقد يحتاج لإعادة تشغيله." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "اكتب تقرير مُعدّل للملف المُعطى بدلًا من تغيير التقرير الأصلي" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "هذه الحزمة لا تبدو مثبّتة بشكل صحيح" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "هذه ليست حزمة %s رسمية. رجاءً أزل أي حزم طرف ثالث وأعد المحاولة." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "مثبت لديك بعض الإصدارات اللاغية من الحزم، رقِّ من فضلك الحزم التالية وتحقق " "مما إذا ما زالت المشكلة تقع:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "برنامج مجهول" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "عُذرًا، أُغلق برنامج \"%s\" فجأة" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "مشكلة في %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "لا توجد ذاكرة خالية كافية على الجهاز لتحليل المشكلة وإبلاغ المطورين آليا." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "بلاغ مشكلة غير صالح" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "غير مسموح لك بالنفاذ إلى بلاغ المشكلة هذا." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "خطأ" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "لا توجد مساحة قرص كافية لمعالجة هذا البلاغ." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "لم تُحدد حزمة" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "تحتاج إلى تحديد حزمة أو معرف عملية (PID). أطلع على --help لمزيد من المعلومات." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "رُفض التّصريح" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "العملية المحددة لا تخصك. من فضلك شغل هذا البرنامج بنفس المستخدم مالك العملية " "أو كجذر." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "رقم عملية(PID)غير صحيح" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "رقم تعريف العملية المحدد لا ينتمي ﻷي برنامج." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "الحزمة %s غير موجودة" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "تعذّر إنشاء التقرير" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "يُحدّث تقرير المشكلة" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "لست أنت المُبلّغ عن هذه المشكلة ولست مشترك فيها، أو أن التقرير مكرّر أو أنه " "مغلق بالفعل.\n" "\n" "من فضلك أنشئ تقريرًا جديدًا باستخدام \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "لست أنت المُبلّغ عن هذه المشكلة. إنّ تعليم مشكلة ما كمشكلة مُكرّرة لمشكلة " "أخرى أسهل بكثير من نقل تعليقاتك ومرفقاتك إلى مشكلة جديدة.\n" "\n" "وبالتبعية، نحن ننصح بالإبلاغ عن مشكلة جديدة باستخدام \"apport-bug\" وإجراء " "تعليق في هذه المشكلة بخصوص المشكلة الأخرى المُبلغ عنها.\n" "\n" "هل تود المتابعة حقًا؟" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "لم تُجمع معلومات إضافية." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "ما نوع المشكلة التي تود الإبلاغ عنها؟" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "عَرَض غير معروف" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "العَرَض\"%s\" غير معروف." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "بعد إغلاق هذه الرسالة رجاءً انقر على نافذة التطبيق للإبلاغ عن المشكلة " "المتعلقة بذلك." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "حدد اسم الحزمة." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "انقر على النافذة كهدف لتقديم بلاغ عن مشكلة." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "في نمط الإبلاغ عن علّة، احفظ المعلومات المُجمّعة في ملف بدلًا من إرسالها. " "هذا الملف يمكن إرساله لاحقًا من جهاز حاسوب آخر." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "هذا سينفّذ أمر apport-retrace في نافذة طرفية لتحليل الانهيار." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "هذا البلاغ ينطبق على برنامج لم يعد مثبتًا على حاسوبك." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "حدثت المشكلة مع برنامج '%s' الذي تغير منذ حدوث الانهيار." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "بلاغ المشكلة هذا تالف ولا يمكن معالجته." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "البلاغ لحزمة غير مثبتة." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "حدث خطأ أثناء محاولة معالجة تقرير الخطأ هذا:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "تعذّر تحديد اسم الحزمة أو اسم الحزمة المصدر." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "تعذّر تشغيل المتصفح" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "تعذّر تشغيل المتصفح لفتح %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "برجاء إدخال معلومات حسابك لنظام تتبع العلل لـ %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "مشكلة في الشبكة" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "لا يمكن الاتصال بقاعدة بيانات الانهيارات. من فضلك تحقق من اتصالك بالإنترنت." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "نفذت الذاكرة" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "لا توجد ذاكرة كافية في النظام لمعالجة بلاغ الانهيار هذا." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "لا يمكن الإبلاغ عن المشكلة:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "المشكلة معروفة" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "بُلّغ عن هذه المشكلة مسبقًا في بلاغ العِلة المعروض في المتصفح، تحقق من فضلك " "مما إذا كان باستطاعتك إضافة معلومات أخرى قد تساعد المطورين." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "بُلّغ عن هذه المشكلة مُسبقًا. شكرًا لك!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "اضغط على أي مفتاح للمواصلة..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "مالذي تود أن تفعل؟ خياراتك هي:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "اختر من فضلك (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i بايتات)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "بعد الإبلاغ عن المشكلة، من فضلك املأ النموذج المفتوح تلقائيا\n" "في متصفح شبكة الوب." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "أر&سل البلاغ (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "اعرض ال&بلاغ" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "ا&حتفظ بملف البلاغ لإرساله لاحقاً أو نسخه إلى مكان آخر" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "ألغ و &تجاهل الانهيارات المستقبلية لإصدارة البرنامج هذه" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "أل&غِ" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "ملف بلاغ المشكلة:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&أكد" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "خطأ: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "يمكن إرسال المعلومات التي جُمِعت إلى المطورين لتحسين\n" "التطبيق، لكن قد يستغرق هذا بعض الدقائق." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "يجري إرسال المعلومات التي جُمِعت إلى نظام تتبع العِلَل،\n" "لكن قد يستغرق هذا بضع دقائق." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&تمّ" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "الملف غير موجود." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "للمواصلة، يجب عليك زيارة الرابط التالي:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "يمكنك تشغيل المتصفح الآن، أو انسخ هذا العنوان إلى متصفح على حاسوب آخر." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "شغّل المتصفح الآن" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "لا يوجد تقارير بلاغات معلقة. جرب --help لمزيد من المعلومات." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "يمكنك مساعدة المطورين في إصلاح المشكلة بالإبلاغ عنها." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">عفواً، فشِل تثبيت أو ترقية حزمة " #~ "\"%s\".</span>" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "بلاغ كامل (موصى به; %s)" #~ msgid "Content of the report" #~ msgstr "محتوى البلاغ" #~ msgid "Restart _Program" #~ msgstr "أعد تشغيل ال_برنامج" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "بإمكانك مساعدة المطورين في إصلاح الحزمة بالإبلاغ عن المشكلة." #~ msgid "&Report Problem..." #~ msgstr "&أبلغ عن مشكلة..." #~ msgid "_Report Problem..." #~ msgstr "_أبلغ عن مشكلة" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "أُغلق %s فجأة في %s عند %s." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "فشِل تثبيت أو ترقية حزمة \"%s\"." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "هذه ليست حزمة %s أصلية" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "واجه النظام مشكلة خطيرة بالنواة." #~ msgid "Application problem" #~ msgstr "مشكلة في التطبيق" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>هل أبلغ المطورين عن المشكلة؟</b></big>\n" #~ "\n" #~ "من فضلك بعد الإبلاغ عن المشكلة املأ النموذج في متصفح الوب المفتوح تلقائيا." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "بلاغ مختصر (اتصال إنترنت بطيء; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "سيُزِيل هذا أجزاء كبيرة من البلاغ، وهي مفيدة للغاية للمطورين في تنقيح " #~ "المشكلة لكنها قد تكون كبيرة جداً عند الرفع إذا كان اتصالك بالإنترنت بطيء." #~ msgid "Package problem" #~ msgstr "مشكلة في حزمة" #~ msgid "Kernel problem" #~ msgstr "مشكلة في النواة" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "يمكنك إذا لم يكن ما تفعله سرّي (تدخل كلمات سرية أو معلومات خاصة) فيمكنك " #~ "المساعدة في تحسين التطبيق بالإبلاغ عن المشكلة." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_تجاهل الانهيارات المستقبلية من إصدارة البرنامج هذه" #~ msgid "_Send Report" #~ msgstr "_أرسل البلاغ" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "إذا لم يكن ما تفعله سرّي (تدخل كلمات سرية أو\n" #~ "معلومات خاصة أخرى) فيمكنك المساعدة في تحسين التطبيق بالإبلاغ عن\n" #~ "المشكلة." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "أرسل بلاغا مختصرا (اتصال إنترنت بطيء؛ %s)" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&أرسل بلاغا كاملا (يوصى به؛ %s)" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "عُذرًا، أُغلق تطبيق \"%s\" فجأة." �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ast.po����������������������������������������������������������������������������0000664�0000000�0000000�00000132440�14416106601�011622� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: ivarela <malditoastur@gmail.com>\n" "Language-Team: Asturian <alministradores@softastur.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ast\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Encaboxar" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Aceutar" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Informe de fallu" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Sentímoslo, asocedió una fallu internu.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Si sigues teniendo problemes, intenta rearrancar l'equipu." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Unviar un informe de fallu p'ayudar a iguar esti problema" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Inorar problemes futuros d'esta versión de programa" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Amosar detalles" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Desaminar llocalmente" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Dexar zarrada" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Siguir" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Recopilando información del problema</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "La información que tas esbillando puede aidar a los desendolcadores a igüar " "el problema que vas a notificar." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Unviando la información del problema" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Unviando información del problema</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "La información recopilada ta siendo unviada al sistema de seguimientu de " "fallos. Esto puede tardar varios minutos." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Ficheru de fallu d'Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(datos binarios)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Sentímoslo, l'aplicación %s detúvose inesperadamente." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Sentímoslo, %s zarróse de manera inesperada." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Sentímoslo, %s esperimentó un fallu internu." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "¿Unviar un informe del problema a los desendolcadores?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Unviar" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Forciar zarru" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Rellanzar" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "L'aplicación %s dexó de responder." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "El programa «%s» dexó de responder." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paquete: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Sentímoslo, hebo un problema al instalar el software." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "L'aplicación %s esperimentó un fallu internu." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "L'aplicación %s zarróse inesperadamente." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Inorar problemes futuros d'esti tipu" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Anubrir Detalles" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Usu: %s <informe> <direutoriu oxetivu>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "El direutoriu de destín esiste y nun ta ermu." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Recopilando información del problema" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Recopilar información del sistema" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Necesítase autenticación pa recopilar información del sistema pa informar " "d'esti problema" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Informes de problemes del sistema" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Escribi la to contraseña p'acceder a los informes de problemes de programes " "del sistema" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Informar d'un problema..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Notificar un mal furrulamientu a los desendolcadores" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Consulta la páxina man pa tener más detalles." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "especifica'l nome del ficheru de rexistru xeneráu por valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "reusar un direutoriu de pruebes (SDIR) creáu anteriormente o, si nun esiste, " "crealu" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "nun crear nin reusar un direutoriu de pruebes pa símbolos de depuración " "adicional, sinón depender namái de los símbolos de depuración instalaos." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "reutilizar un direutoriu caché (REDC) creáu previamente, si nun esiste, " "crealu" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "informar del avance na descarga/instalación al instalar paquetes nel sistema " "de pruebes" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "l'executable que cuerre baxo'l complementu memcheck valgrind na deteición de " "fugues de memoria" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Fallu: %s nun ye un executable. Parando." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "El so sistema puede volvese inestable y ye dable que necesite reanicialu." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Nun poner les traces nueves nel informe, pero escribiles na salida estándar." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Arrancar una sesión interactiva de gdb col volcáu de memoria del informe (-" "o inoráu; nun se reescribe l'informe)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Escribir l'informe modificáu nel ficheru dau, n'arróu de camudar l'informe " "orixinal" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Desaniciar del informe el volcáu de memoria tres la rexeneración de la traza " "de la pila" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Sobroscribir los informes de CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Sobroscribir los informes de ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Sobroscribir los informes de ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Recontruyir la información d'informes de paquetes" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Enteponer marques de tiempu pa rexistrar mensaxes, pa operación en llote " "(batch)" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Crear y usar repositorios de terceros dende orixes especificaos n'informes" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Direutoriu pa paquetes desempacaos. Les execuciones futures asumirán que " "cualesquier paquete yá descargáu estráise tamién a esta caxa de sable " "(sandbox)." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Camín a un ficheru cola información d'autenticación a la base de datos de " "fallos. Esto úsase cuando especifica un ID de fallu pa cargar una pila de " "rastros reconstituyíos (namái si nun s'especifiquen nin -g, nin -o nin -s" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Amosar la pila de rastros reconstituyíos y pidir confirmación enantes " "d'unviales a la base de datos d'errores" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Camín a la base de datos sqlite duplicada (por omisión: ensin comprobación " "de duplicáu)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Nun pues usar -C ensin -S. Parando." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "¿D'alcuerdu n'unviar esto como axuntos? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Esti paquete nun paez tar instaláu correcho" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Esti nun ye un paquete oficial de %s. Desinstala cualquier paquete de " "terceros ya inténtalo de nueves." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Tienes dalgunos paquetes instalaos con versiones obsoletes. Por favor, anova " "los siguientes paquetes y verifica si'l problema persiste:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programa desconocíu" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Sentimoslo; el programa «%s» zarróse inesperadamente" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problema en %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "El to equipu nun tien memoria llibre suficiente p'analizar el problema " "automáticamente y unviar un informe a los desendolcadores." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Informe de problema incorreutu" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Nun tienes permitíu acceder a esti informe de problema." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Fallu" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Nun hai suficiente espaciu de discu disponible pa procesar esti informe." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nun s'especificó dengún paquete" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Necesites especificar un paquete o un PID. Consulta --help pa más " "información." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permisu denegáu" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "El procesu especificáu nun te pertenez. Executa esti programa como " "propietariu del procesu o como superusuariu." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID incorreutu" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "El ID de procesu especificáu nun pertenez a dengún programa." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "El paquete %s nun esiste" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "¿De qué triba de problema quier informar?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Síntoma desconocíu" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "El síntoma «%s» ye desconocíu" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opciones] [síntomes|pid|paquete|camín pal programa|.apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Entamar nel mou de notificación de fallos. Requier --package y un --pid " "opcional, o sólo un --pid. Si nun s'apurre dengún, amuesa una llista de " "síntomes conocíos. (Implícitu si s'apurre un únicu argumentu.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Rellenar un informe de fallu sobre un síntoma. (Implícitu si s'apurre un " "nome de síntoma como únicu argumentu.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Especifique'l nome del paquete nel mou --file-bug. Esto ye opcional si un --" "pid s'especifica. (Implícitu si se dió un nome de paquete como un únicu " "argumentu)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "El pid proporcionáu ye una aplicación colgada." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Informar del fallo a partir de los ficheros .apport o .crash indicaos en " "llugar de los pendientes en %s. (Implícitu si s'indica el ficheru como únicu " "argumentu.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Amosar el númberu de versión d'Apport" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "Esto executará apport-retrace nuna terminal pa desaminar el fallu." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Executar una sesión gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Executar una sesión gdb ensin descargar símbolos de depuración" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Anovar %s con una pila de siguimientu completamente simbólica" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Esti informe de problema aplícase a un programa que nun ta instaláu." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "El problema ocurrió col programa %s, que camudó dende qu'asocedió'l fallu." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "L'informe del problema ta frayáu y nun puede procesase." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "L'informe remanez d'un paquete non instaláu." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Hebo un fallu mentanto s'intentaba procesar l'informe de fallu:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Nun pudo determinase'l nome del paquete binariu o fonte." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Nun puede arrancase'l restolador web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Nun puede arrancase'l restolador web p'abrir %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Introduza la información de la so cuenta pal sistema de seguimientu de " "fallos de %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problemes cola rede" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Nun puede afitase la conexón cola base de datos d'errores, por favor, " "verifique la so conexón a Internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memoria escosada" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "El to sistema nun tien la memoria suficiente pa procesar esti informe de " "fallu." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "El problema nun puede notificase:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problema yá conocíu" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Esti problema yá foi comunicáu previamente nel informe de fallu amosáu nel " "restolador web. Por favor, comprueba si puedes amestar cualesquier " "información adicional que pudieres resultar d'utilidá a los desendolcadores." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ya s'informó d'esti problema a los desendolcadores. ¡Gracies!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Esto asocedió demientres una suspensión anterior y torgó que'l sistema " "remaneciera correutamente." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Esto asocedió demientres una hibernación anterior y torgó que'l sistema " "remaneciera correutamente." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "El procesu de reanudación colingóse cerca del final y parecerá que se " "completó normalmente." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Calca una tecla pa siguir..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "¿Qué quies facer? Les tos opciones son:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Por favor escueye (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Lluéu de que la información del problema se tenga unviao, por favor,\n" "completa'l formulariu que s'abrirá automáticamente nel to restolador." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Unviar informe (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Desaminar llocalmente" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Ver informe" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Guardar l'informe pa unviar lluéu, o pa copialu en dalgún otru llugar." #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Encaboxar ya &inorar fallos futuros d'esta versión del programa." #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Encaboxar" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Ficheru del informe del problema:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirmar" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Fallu: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "La información recopilada puede unviase a los desendolcaodres pa meyorar\n" "l'aplicación. Esto puede tardar unos minutos." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "La información recopilada ta unviándose al sistema de seguimientu de " "fallos.\n" "Esto puede tardar unos minutos." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Fecho" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "dengún" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Esbillao: %s. Delles opciones:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Opciones:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Camín al ficheru (Enter pa encaboxar):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "El ficheru nun esiste." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Esto ye un direutoriu." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Pa continuar, visite la siguiente URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Puede llanzar un restolador agora, o copiar esta URL a un restolador n'otru " "equipu." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Llanzar un restolador agora" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nun hai informes de fallos pendientes. Intenta --help pa mas información." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "El to sistema atopó un problema seriu del núcleu" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>¿Unviar informe del problema a los desendolcadores?</b></big>\n" #~ "\n" #~ "Una vegada se heba unviáu l'informe del problema, rellena'l formulariu " #~ "qu'aparecerá na ventana del restolador (que s'abrirá automáticamente)." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Informe completu (recomendáu; %s)" #~ msgid "Content of the report" #~ msgstr "Conteníu del informe" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Si nun tabes faciendo res confidencial (como introducir contraseñes o otra " #~ "información privada), puedes informar del problema p'aidar a meyorar " #~ "l'aplicación." #~ msgid "Kernel problem" #~ msgstr "Problema nel núcleu" #~ msgid "Package problem" #~ msgstr "Problema nel paquete" #~ msgid "Restart _Program" #~ msgstr "Reaniciar el _programa" #~ msgid "_Report Problem..." #~ msgstr "Info_rmar del problema..." #~ msgid "_Send Report" #~ msgstr "_Unviar informe" #~ msgid "&Report Problem..." #~ msgstr "&Informar d'un problema..." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s zarróse de forma inesperada en %s a %s." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Si nun tabes faciendo res confidencial (como introducir contraseñes o\n" #~ "otra información privada), puedes informar del problema p'aidar a\n" #~ "meyorar l'aplicación." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Unviar l'informe completu (recomendáu; %s)" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Esto asocedió durante una suspensión anterior ya impidió reanudase " #~ "afayadizamente." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Esto asocedió durante una ivernación anterior ya impidió reanudase " #~ "afayadizamente." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Sentímoslo; falló la instalación o " #~ "anovación del paquete «%s».</span>" #~ msgid "Application problem" #~ msgstr "Problema n'aplicación" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Informe reducíu (conexón lenta a Internet; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Esto desaniciará dalgunos elementos grandes del informe. Éstos son mui " #~ "útiles pa que los desendolcadores depuren el problema, pero puede resulta-" #~ "yos mui grandes pa unviarlos si tienes una conexón lenta a Internet." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Puedes aidar a los desendolcadores a igüar el paquete informando del " #~ "problema." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Inorar fallos futuros d'esta versión del programa" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Si lo notifiques, aidarás a los desendolcadores a iguar el problema." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Unviar informe &reducíu (conexones d'internet lentes; %s)" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Falló la instalación o l'anovamientu del paquete «%s»." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Esti nun ye un paquete %s xenuín" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [opciones] <informe apport del problema | ID del fallu>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "tampoco necesita facer una operación llocal (-s,-g,-o) o suministrar un " #~ "ficheru d'autentificación (--auth); vea --help pa una pequeña aida" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "númberu incorreutu d'argumentos use --help pa una pequeña aida" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Sentímoslo, l'aplicación %s zarróse de manera inesperada." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "El sistema agora podría volvese inestable y pue necesitar un reaniciu." ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/az.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077432�14416106601�011456� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Azerbaijani translation for apport # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2014. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2014-07-01 14:13+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Azerbaijani <az@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: az\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/be.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000164146�14416106601�011431� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Belarusian translation for apport # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2007. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-09-17 07:37+0000\n" "Last-Translator: Mikola Tsekhan <mail@tsekhan.com>\n" "Language-Team: Belarusian <be@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: be\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Скасаваць" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Добра" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Справаздача аб непаладцы" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Выбачайце, паўстала ўнутраная памылка.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Калі праблема з'явіцца зноў, паспрабуйце перазагрузіць кампутар." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Адправіць справаздачу пра памылку, каб ліквідаваць яе" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ігнараваць далейшыя збоі ў гэтай версіі праграмы" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Паказаць падрабязнасці" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Лакальная праверка" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Пакінуць зачыненым" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Працягнуць" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Збор інфармацыі аб няспраўнасці</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Адбываецца збор інфармацыі, якая можа дапамагчы распрацоўшчыкам выправіць " "гэтую памылку." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Перадача інфармацыі аб непаладцы" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Перадача звестак аб няспраўнасці</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Сабраныя дадзеныя перасылаюцца ў сістэму ўліку памылак. Гэта можа заняць " "некалькі хвілін." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Файл справаздачы Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(двайковыя дадзеныя)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Выбачайце, прылада %s нечакана прыпынілася." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Выбачайце, %s нечакана зачынілася." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Прабачце, у %s адбылася ўнутраная памылка." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Даслаць распрацоўшчыкам паведамленне аб праблеме?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Даслаць" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Прымусовае закрыццё" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Перазапусціць" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Дадатак %s перастаў адказваць." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Праграма \"%s\" перастала адказваць." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Пакет: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Прабачце, пры ўсталяванні адбылася памылка." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "У дадатку %s адбылася ўнутраная памылка." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Дастасаванне %s нечакана зачынілася." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ігнараваць такія праблемы ў будучыні" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Схаваць падрабязнасці" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Выкарыстанне: %s <справаздача> <тэчка прызначэння>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Тэчка прызначэння існуе і яна не пустая." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Імя карыстальніка:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Пароль:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Збор інфармацыі аб праблеме" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Збор інфармацыі аб праблеме" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Сабраную інфармацыю можна даслаць распрацоўшчыкам, каб палепшыць " "прыкладанне. Гэта можа заняць некалькі хвілін." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Перадача інфармацыі аб непаладцы" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Сабраць сістэмную інфармацыю" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Трэба даць права, каб сабраць патрэбныя дадзеныя для справаздачнасці гэтай " "праблемы" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Справаздачы аб сістэмных памылках" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Калі ласка, увядзіце пароль для доступу да справаздач пра памылкі ў " "сістэмных праграмах" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Паведаміць аб праблеме..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Паведаміць аб недапрацоўцы распрацоўшчыкам" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Глядзіце падрабязнасці ў старонках man" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "вызначце імя log файлу valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "выкарыстоўваць раней створаны каталог пясочніцы (SDIR) або стварыць яго калі " "яго не існуе" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "не ствараць і не выкарыстоўваць каталог пясочніцы для дадатковых сімвалаў " "адладкі, а спадзявацца толькі на устаноўленыя сімвалы адладкі." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "выкарыстоўваць раней створаны каталог кэша (CDIR) або стварыць яго калі яго " "не існуе" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "паказваць прагрэс загрузкі/ўстаноўкі пры ўсталёўцы пакетаў у пясочніцу" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "выкананы файл, які запускаецца пад кантролем valgrind memcheck для " "вызначэння уцечак памяці" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Усталяваць у часовае асяроддзе дадатковы пакет (можа задавацца некалькі " "разоў)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Памылка: %s - не выканальны файл. Прыпынак." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "Сістэма можа стаць нестабільнай, магчыма спатрэбіцца перазагрузка." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Не дадаваць новыя трасіроўкі ў справаздачу, а адсылаць на стандартны вывад." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Запусціць інтэрактыўны сеанс gdb з дампам ядра са справаздачы (-o " "ігнаруецца; справаздача не перазапісваецца)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Захаваць змененую справаздачу ў файл замест змены арыгінальнай справаздачы" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Выдаліць дамп ядра са справаздачы пасля ўзнаўлення трасіроўкі стэка" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Замяніць CoreFile у справаздачы" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Замяніць ExecutablePath у справаздачы" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Замяніць ProcMaps у справаздачы" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Нанава пабудаваць інфармацыю аб пакетах у справаздачы" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Стварыць часавае асяроддзе, затым загрузіць / ўсталяваць у яе неабходныя " "пакеты і адладкавыя сімвалы; без гэтага параметра прадугледжваецца, што " "неабходныя пакеты і адладкавыя сімвалы ў сістэме ўжо ўсталяваныя. Аргумент " "паказвае на базавую тэчку канфігурацыі сістэмы пакетаў; калі Вы паказалі " "\"system\", будуць выкарыстоўвацца сістэмныя файлы канфігурацыі, але толькі " "ў выпадку выяўлення аварыйных сітуацый, якія адбыліся ў выпуску сістэмы, які " "працуе ў дадзены момант." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Паведамляць аб ходзе выканання загрузкі / ўсталёўкі пакетаў у часовае " "асяроддзе" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Дадаваць часовыя пазнакі да паведамленняў у часопісе, для групавых аперацый" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Стварэнне і выкарыстанне іншых сховішчаў на аснове зыходных, указаных у " "справаздачах" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Тэчка для захавання пакетаў, загружаных у часовае асяроддзе" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Дырэкторыя для распакавання пакетаў. Пры наступных запусках ўсё ўжо " "загружаны пакеты будуць распакоўваць ў гэта ізаляванае асяроддзе." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Шлях да файла з інфармацыяй аб праверцы сапраўднасці базы збояў. " "Выкарыстоўваецца пры ўказанні ID збою для адпраўкі трасіровак стэка (толькі " "калі -g, -o ці -s не пазначаныя)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Адлюстраваць трасіроўкі і запытаць пацверджанне перад іх адпраўкай у базу " "дадзеных збояў." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Шлях да дублюючай базы дадзеных sqlite (па змаўчанні: без праверкі " "дублікатаў)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Нельга выкарыстоўваць -C без -S. Прыпынак." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Адправіць гэтыя дастасаванні? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Падобна на тое, што гэты пакет усталяваны неправільна" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Дадзены пакет %s не з'яўляецца афіцыйным. Калі ласка, выдаліце ўсе староннія " "пакеты і паўторыце зноў." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "У Вашай сістэме ўсталяваныя састарэўшыя версіі некаторых пакетаў. Абнавіце " "наступныя пакеты і праверце, ці засталася праблема:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "невядомая праграма" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Прабачце, праграма «%s» аварыйна завяршыла сваю работу" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Праблема ў %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "На Вашым кампутары недастаткова вольнай памяці для таго, каб аўтаматычна " "прааналізаваць няспраўнасць і даслаць справаздачу распрацоўшчыкам." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Няправільная справаздача аб памылцы" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "У Вас не хапае правоў, каб паведамляць аб праблемах." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Памылка" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Недастаткова месца на дыску для апрацоўкі дадзенай справаздачы." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Не пазначаны пакет" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Неабходна пазначыць пакет альбо PID. Запусціце праграму з параметрам --help " "каб атрымаць дадатковую інфармацыю." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Доступ забаронены" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Пазначаны працэс запушчэны іншым карыстальнікам. Запусціце дадзеную праграму " "з правамі ўладальніка працэса альбо адміністратара сістэмы." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Памылковы PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Пазначаны PID належыць іншаму працэсу." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Сімптаматычны скрыпт %s ня можа вызначыць закрануты пакет" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Пакет %s не існуе" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Нельга стварыць справаздачу" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Абнаўленне справаздачы аб праблеме" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Вы не з'яўляецеся аўтарам альбо атрымальнікам гэтай справаздачы аб праблеме, " "магчыма яна ўжо існуе ці была зачыненая." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Вы не з'яўляецеся стваральнікам дадзенай справаздачы. Нашмат прасцей, " "адзначыць памылку што яна ўжо існуе, чым ствараць свае каментары і ўкладаць " "іх у новую памылку\n" "\n" "Пасля, мы рэкамендуем Вам падаць новае паведамленне аб памылцы выкарыстання " "\"памылка apport\", і зрабіць заўвагу аб гэтай памылцы ў тым жа файле.\n" "\n" "Вы сапраўды хочаце працягнуць?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Не сабрана ніякай дадатковай інфармацыі." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Пра які тып праблемы Вы хочаце паведаміць?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Невядомы сімптом" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Сімптом \"%s\" невядомы." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Пасля закрыцця гэтага паведамлення, калі ласка, націсніце на вакно " "прыкладання, каб паведаміць аб праблеме." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop не ўдалося вызначыць ID працэсу акна" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <нумар справаздачы>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Пазначце імя пакета." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Дадаць дадатковы тэг да справаздачы. Можа быць паказаны некалькі разоў." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [параметры] [прыкмета|pid|пакет|шлях да праграмы|.apport/.crash файл]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Запуск у рэжыме адпраўкі справаздачы аб памылцы. Патрабуе параметр --package " "і неабавязковы --pid, або толькі --pid. Калі параметры не перададзеныя, " "адлюстроўвае спіс вядомых сімптомаў. (Ужываецца, калі перададзены адзіны " "параметр.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Цокніце па намечаным акне каб запоўніць справаздачу аб праблеме." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Запусціць у рэжыме абнаўлення памылкі. Можа прымаць дадатковы ключ - package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Адправіць справаздачу аб памылцы з сімптомам. (Ужываецца, калі назва " "сімптома перададзена ў якасці адзінага параметра.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Пазначыць імя пакета ў рэжыме --file-bug. Неабавязкова, калі пазначаны --" "pid. (Ужываецца, калі імя пакета перададзена ў якасці адзінага праметра.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Пазначце запушчаную праграму ў рэжыме - file-bug. У гэтым выпадку " "справаздача аб памылцы будзе ўтрымліваць больш інфармацыі. (Маецца на ўвазе, " "што пазначаны адзіны аргумент - pid.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Згаданы ідэнтыфікатар належыць працэсу, які не адказвае." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Адправіць дадзеныя аб збоі з азначанага файла .apport або .crash замест " "ччакаемых у %s. (Ужываецца, калі файл перададзены ў якасці адзінага " "параметра.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "У рэжыме збору справаздачы аб памылках, сабраная інфармацыя захоўваецца ў " "файле замест яе адпраўкі. Гэты файл можна будзе адправіць пазней, ці з " "іншага кампутара." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Раздрукаваць нумар версіі Apport ." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Будзе ажыццёўлены запуск «apport-retrace» у акне тэрміналу для праверкі " "аварыйнага завяршэння працы." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Запусціць сеанс gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Запусціць сеанс gdb, абыходзячы загрузкі адладкавых сімвалаў" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Абнавіць %s з поўным адсочваннем сімвалічнага стэку" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Дадзеная справаздача адносіцца да праграмы, якая не ўсталявана." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Праблема ў праграме %s, да якой былі ўнесены змены з моманту аварыйнага " "завяршэння яе работы." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Дадзеная справаздача аб непаладцы пашкоджана і не можа апрацоўвацца." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Справаздача датычыцца пакета, які не быў усталяваны." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Адбылася памылка пры спробе апрацоўкі справаздачы:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Немагчыма вызначыць імя пакету альбо крыніцы." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Не атрымалася запусціць вэб-браўзэр" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Немагчыма запусціць вэб-браўзэр, каб адчыніць %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Калі ласка, увядзіце інфармацыю аб уліковым запісы для %s сістэмы сачэння " "за памылкамі" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Праблема з сеткай" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Не атрымоўваецца падлучыцца да базы дадзеных па збоях, калі ласка, праверце " "падлучэнне да Інтэрнэту." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Нястача памяці" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "У сістэме недастаткова памяці для апрацоўкі дадзенай справаздачы аб памылцы." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Немагчыма паведаміць аб праблеме:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Праблема ўжо вядомая" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Аб дадзенай няспраўнасці ўжо вядома. Існуючая справаздача аб ёй адкрыта ў " "Вашым браўзэры. Калі ласка, праверце, ці можаце Вы дадаць да яе карысную " "інфармацыю, якая магла бы дапамагчы распрацоўшчыкам." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Аб гэтай праблеме распрацоўнікам ужо вядома. Дзякуй!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Гэта адбылося падчас папярэдняга сеансу прыпынення працы і прывяло да " "немагчымасці належнага аднаўлення працы сістэмы." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Гэта адбылося падчас папярэдняга сеансу ўсыплення і прывяло да немагчымасці " "належнага аднаўлення працы сістэмы." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Адбылася памылка ў працэсе стварэння справаздачы, бо сам працэс завіс перад " "сваім завяршэннем; для нармальнага завяршэння ён павінен быў з'явіцца." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Каб працягнуць, націсніце любую клавішу ..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Што вы жадаеце зрабіць? Магчымыя варыянты:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Калі ласка выберыце (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i байт)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Пасля таго, як справаздача будзе дасланая, запоўніце\n" "форму ў акне браўзэра , што адчынілася аўтаматычна." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Даслаць паведамленне (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Локальна перевірка" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Паказаць справаздачу" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Захаваць файл справаздачы для наступнай адпраўкі альбо капіявання куды-" "небудзь" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Адмяніць і &ігнараваць будучыя збоі ў гэтай версіі праграмы" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Скасаваць" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Файл справаздачы аб праблеме:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Пацвердзіць" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Памылка: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Сабраная інфармацыя можа быць накіравана распрацоўшчыкам для\n" "паляпшэння дастасавання. Гэта можа заняць некалькі хвілін." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Сабраная інфармацыя накіроўваецца да сістэмы адсочвання памылак.\n" "Гэта можа заняць некалькі хвілін." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Зроблена" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "нічога" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Абрана: %s. Некалькі варыянтаў:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Выбар:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Шлях да файла (Enter — адмена):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Файл не існуе." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Гэта - дырэкторыя." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Каб працягнуць, Вы павінны наведаць наступны адрас:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Зараз Вы можаце адкрыць браўзар ці скапіяваць URL у браўзар на іншы кампутар." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Запусціць браўзар" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "Няма чакаючых паведамленьняў аб збоях. Паспрабуйце ключ --help." #~ msgid "&Report Problem..." #~ msgstr "&Паведаміць аб праблеме..." #~ msgid "_Report Problem..." #~ msgstr "_Паведаміць аб праблеме..." #~ msgid "Package problem" #~ msgstr "Праблемы з пакетам" #~ msgid "Kernel problem" #~ msgstr "Праблемы з ядром" #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Прабачце, праграма %s нечакана зачыніліся" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ігнараваць будучыя збоі ў гэтай версіі праграмы" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Прабачце, праграма \"%s\" нечакана зачыніліся." #~ msgid "Restart &Program" #~ msgstr "&Перазапусціць праграму" #~ msgid "&Details..." #~ msgstr "&Падрабязнасці..." #~ msgid "Send this data to the developers?" #~ msgstr "Адаслаць гэтыя дадзеныя распрацоўшчыкам?" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Вы можаце дапамагчы распрацоўшчыкам, адаслаўшы справаздачу аб знойдзенай " #~ "непаладцы." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Вы можаце дапамагчы распрацоўшчыкам выправіць дадзеную праблему, адаслаўшы " #~ "справаздачу аб ёй." #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Пасля таго, як справаздача будзе даслана, запоўніце форму ў аўтаматычна " #~ "выплыўшым акне аглядальніка." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Кароткая версія справаздачы (пры марудным злучэнні з Інтэрнэтам; %s)" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Гэта здарылася падчас папярэдняга пераходу ў рэжым чакання і перашкаджала " #~ "аднаўленню сістэмы." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Гэта адбылося падчас папярэдняга засынання і перашкаджала ўзнаўленню сістэмы." #~ msgid "Restart _Program" #~ msgstr "Перазапусціць _праграму" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ігнараваць будучыя збоі ў гэтай версіі праграмы" #~ msgid "Content of the report" #~ msgstr "Змест справаздачы" #~ msgid "Application problem" #~ msgstr "Праблемы дастасавання" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Прабачце, не ўдалося ўсталяваць альбо " #~ "абнавіць пакет «%s».</span>" #~ msgid "_Send Report" #~ msgstr "Да_слаць паведамленне" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [парамэтры] <справаздача аб праблеме apport | ID збою>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "Вы можаце выконваць лакальныя аперацыі (-s, -g, -o), інакш прадастаўце файл " #~ "праверкі сапраўднасці (--auth); набярыце --help для кароткай даведкі" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "няправільны лік аргументаў; набярыце - help для кароткай даведкі" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Калі Вы не ўводзілі сакрэтную інфармацыю (паролі або асабістыя дадзеныя),\n" #~ "Вы можаце дапамагчы нам палепшыць праграму, адправіўшы справаздачу аб " #~ "памылцы." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s нечакана зачынілася %s у %s." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Ня атрымалася ўсталяваць альбо абнавіць пакет «%s»." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "" #~ "Адаслаць &скарочаную версію справаздачы (павольнае злучэнне з Інтэрнэтам; %s)" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Калі Вы ня ўводзілі сакрэтную інфармацыю (паролі або асабістыя дадзеныя), Вы " #~ "можаце дапамагчы нам палепшыць праграму, адправіўшы справаздачу аб непаладцы." #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Прабачце, праграмы %s нечакана зачыніліся." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "У Вашай сістэме выяўлена сур'ёзная няспраўнасць ядра." #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Прабачце, адбылася памылка ўсталёўкі або абнаўлення пакета \"%s\"." #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Пераслаць распрацоўшчыкам справаздачу аб няспраўнасці?</b></big>\n" #~ "\n" #~ "Пасля таго, як справаздача будзе адаслана, запоўніце, калі ласка, форму, " #~ "якая аўтаматычна адкрыецца ў браўзары." #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Гэтае дзеянне выдаліць некаторыя вялікія элементы з паведамлення. Дадзеныя " #~ "элементы вельмі карысныя для распрацоўшчыкаў, але могуць быць занадта " #~ "вялікімі для загрузкі ў выпадку, калі Вы падлучаны да Інтэрнэту праз " #~ "павольны канал." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Праца вашай сістэмы цяпер можа стаць нестабільнай. Сістэму варта " #~ "перазагрузіць." ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/bg.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000155260�14416106601�011430� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Bulgarian translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Bulgarian <bg@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: bg\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Доклад за грешка" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Извинете, възникна вътрешна грешка.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Ако се сблъскате с този проблем в бъдеще, опитайте да рестартирате компютъра." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" "Изпратете доклад за грешка, за да помогнете за решаването на този проблем" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Игнорирай бъдещи проблеми с тази версия на програмата" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Покажи детайлите" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Локална проверка" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Остави затворено" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Продължи" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Събиране на информация за проблем</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Бива събирана информация, която може да помогне на разработчиците да " "поправят проблема, който докладвате." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Прехвърляне на информация за проблема" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Качване на информация за проблем</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Събраната информация бива изпращана към системата за следене на грешки. Това " "може да отнеме няколко минути." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport файл с доклад за срив" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(двоични данни)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Извинете, приложението %s внезапно спря." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Извинете, %s беше затворено неочаквано." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Извинете, възникна вътрешна грешка в %s." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Да се изпраща ли доклад за грешка до разработчиците?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Изпрати" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Принудително затваряне" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Стартирай отново" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Приложението «%s» престана да отговаря." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Програмата «%s» престана да отговаря." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Пакет: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Извинете, възникна проблем при инсталирането на софтуер." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "В приложението %s възникна вътрешна грешка." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Приложението %s внезапно се затвори." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Игнорирай бъдещи проблеми от този тип" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Скрий детайлите" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Потребителско име:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Парола:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Събиране на информация за проблема" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Събиране на информация за проблема" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Прехвърляне на информация за проблема" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Събери информация за системата" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "За да изпратите съобщение за проблем и събиране на информация за системата, " "е необходимо да се идентифицирате" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Доклади за системни грешки" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Моля, въведете паролата си за достъп до докладите за проблеми на системни " "програми" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Докладвай за проблем..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Докладвай за неизправност на разработчиците" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Вижте повече подробности в man страницата." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "укажете името на лог файла за valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "използвай по-рано създадената директория за времената среда (SDIR) или я " "създайте, ако тя не съществува" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "не създавай и не използвай директорията на времената среда, за допълнителни " "символи за отстраняване на грешки, а разчитай само на установените символи " "за отстраняване на грешки." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "използвай по-рано създадената кеш директория (CDIR) или я създаде, ако тя не " "съществува" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "докладвай прогреса за сваляне/инсталиране по врене на инсталирането на " "пакетите в времената среда" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "изпълним файл, който стартира под контрола на valgrind memcheck за откриване " "на изтичане на памет" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Инсталирай във времената среда допълнителен пакет (може да се указва няколко " "пъти)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Грешка: %s не е изпълним файл. Спиране." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Сега вашата система може да стане нестабилна и да се наложи да я " "рестартирате." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Стартирай интерактивна gbg сесия с дъмпа от ядрото на доклада (-о " "игнорирано; не презаписва доклада)." #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Съхрани модифициран доклад с дадено име на файл вместо променяне на " "оригиналния доклад." #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Изтрий дъмпа от ядрото от доклада след регенериране трасирането на стека." #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Замени CoreFile в доклада" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Замени ExecutablePath в доклада" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Замени ProcMaps в доклада" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Изгради наново пакетната информация в доклада" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Създай временна среда, след това изтегли/инсталирай необходимите пакети и " "символи за отстраняване на грешки; без тази опция се предполага, че " "необходимите пакети и символи за отстраняване на грешки вече са инсталирани. " "Аргумента указва базовата директория за конфигурация на пакетната система; " "ако сте задали «system», ще се използват системните конфигурационни файлове, " "но само в случай на извънредни ситуации, възникнали в изданието на " "работещата в момента система." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Докладвай за напредъка при сваляне/инсталиране на пакети във времената среда" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Добави временни отметки до съобщенията в дневника за групови операции" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" "Кеш директория за съхраняване на пакетите, изтеглени във времената среда" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Директория за разопаковане на пакети. Когато повторение всички вече " "изтеглени пакети ще се разопаковат в тази времена среда." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Път към дублираната sqlite база данни (стандартно: без проверка за дублиране)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Не може да се използва без -C без -S. Спиране." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Да се изпрати ли прикаченото? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Този пакет не изглежда да е инсталиран правилно" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Това не е официален %s пакет. Моля, премахнете пакетите от трети страни и " "опитайте отново." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "В системата ви има инсталирани остарели версии на някои пакети. Моля, " "надградете тези пакети и проверете, останал ли е проблема:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "неизвестна програма" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Извинете, програмата «%s» аварийно се затвори" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Проблем в %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Вашият компютър няма достатъчно свободна памет, за да се анализира " "автоматично проблема и да изпрати доклада на разработчиците." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Невалиден доклад с проблем" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Нямате достъп до този доклад за проблем." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Грешка" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Няма достатъчно свободно място за обработка на този доклад." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Не е указан пакет" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "Трябва да укажете пакет или PID. Вижте --help за повече информация." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Достъпа е отказан" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Указаният процес не ви принадлежи. Моля, стартирайте тази програма от името " "на собственика на процеса или като root потребител." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Невалиден PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Указания идентификатор не принадлежи на програма." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Симптомният скрипт %s не може да определи засегнат пакет" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Пакета %s не съществува" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Не може да бъде създаден доклад" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Актуализиране на доклада за проблема" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Вие не се явявате изпращач или абонат на доклада за проблем, възможно е " "доклада да е дублиран или вече е затворен.\n" "Моля създайте нов доклад като използвате «apport-bug»." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Вие не сте създателят на този доклад за проблем. По-лесно е да маркирате " "тази грешка като дублиран на друг, от колкото да преместите вашите коментари " "и прикачени файлове в нова грешка.\n" "\n" "Освен това, ние ви препоръчваме да регистрирате нов доклад за грешка като " "използвате «apport-bug» и създадете коментар в тази грешка в същият файл.\n" "\n" "Наистина ли искате да продължите?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Не е събрана допълнителна информация." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Какъв вид проблем искате да докладвате?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Неизвестен симптом" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Симптомът «%s» е неизвестен." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "След като затворите това съобщение, моля кликнете на прозореца на " "приложението, за да докладвате за този проблем." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop неуспя да определи идентификатора на процеса за прозореца" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <номер на доклада>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Посочете име на пакета." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Добавете допълнителен етикет към доклада си. Може да бъде указан няколко " "пъти." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [параметри] [признак|pid|пакет|път до програмата|.apport/.crash файл]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Стартиране в режим на регистриране на грешка. Изисква --package и по избор --" "pid, или само --pid. Ако не е подаден аргумент се показва списък с известни " "симптоми. (Стандартно ако е подаден единствен аргумент.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Кликнете на целевият прозорец, за да попълните доклад за грешка." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Стартиране в режим на обновяване на грешка. Приема се аргумент по избор --" "package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Регистриране на доклад за грешка относно симптом. (Стандартно ако името на " "симптома е подадено като единствен аргумент.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Посочете името на пакета в --file-bug режима. Това е по избор ако --pid e " "посочен. (Стандартно ако името на пакета е подадено като единствен аргумент.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Определете работеща програма -- в -file-bug режим. Ако това е посочено, " "доклада за грешка ще съдържа повече информация. (Стандартно ако pid е даден " "като единствен аргумент.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Посоченият идентификатор принадлежи на процес, който не отговаря." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Докладване на срив от даден .apport или .crash файл вместо от висящите в %s. " "(Стандартно ако файла е подаден като единствен аргумент.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Отпечатай номера на версията на Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Ще се стартира «apport-retrace» в терминален прозорец и ще извърши проверка " "на аварийното завършване на работата." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Стартирай gdb сесия" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" "Стартирай gdb сесия без изтегляне на символите за отстраняване на грешки" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" "Актуализирай %s с пълно проследяване на символичното трасиране на стека" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Проблемът се отнася за програма, която вече не е инсталирана." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Проблемът възникна с програмата %s, в която са внесени промени след нейното " "аварийно завършване на работа." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Този доклад за проблем е повреден и не може да бъде обработен." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Доклада се отнася за пакет, който не е инсталиран." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Възникна грешка при обработката на този доклад за проблем:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" "Не може да бъде определено името на пакета или на пакета с изходния код." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Не може да се стартира уеб браузъра" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Не може да се стартира уеб браузъра, за да се отвори %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Моля въведете вашите потребителски данни за %s системата за следене за грешки" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Мрежов проблем" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Не може да се свърже с базата данни за сривове, моля проверете връзката с " "интернет." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Изчерпване на паметта" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Вашата система не разполага с достатъчно памет, за да обработи този доклад " "за срив." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Проблемът не може да бъде докладван:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Проблемът вече е известен" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "За този проблем е вече известно. Съществуващият доклад за него е отворен в " "браузъра ви. Моля, проверете дали можете да добавите друга полезна " "информация, която може да помогне на разработчиците." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Този проблем вече е бил докладван на разработчиците. Благодарим ви!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Продължаването заби към края, но изглежда процедурата беше завършена " "нормално." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Натиснете някой клавиш, за да продължите..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Какво бихте искали да направите? Вашите опции са:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Моля, изберете (%s)" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i байта)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "След като доклада за проблема бъде изпратен, моля попълнете формата\n" "в браузъра, който ще се отвори след това." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Изпрати доклад (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Локална проверка" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Прегледай доклада" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Съхрани файла на доклада за изпращане по-късно или копиране на друго място" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Отмени и &игнорирай бъдещи сривове на тази версия на програмата" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Отмени" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Отчетен файл на проблем:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Потвърди" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Грешка %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Събраната информация може да се изпрати на разработчиците, за да\n" "подобрят приложението. Това може да отнеме няколко минути." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Събраната информация се изпраща на системата за следене за грешки.\n" "Това може да отнеме няколко минути." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Готово" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "нищо" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Избран: %s. Множество избори:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Избори:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Път до файл (Enter за отказ):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Файлът не съществува." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Това е папка." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "За да продължите, трябва да посетите следния адрес:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Можете да стартирате браузъра сега или да копирате връзката в браузър на " "друг компютър." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Стартирай сега браузъра" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Няма предстоящи доклади за сривове. Пробвайте --help за повече информация." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Пълен доклад (препоръчва се; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Изпращане на доклад с проблем към разработчиците?</b></big>\n" #~ "\n" #~ "След като бъде изпратен доклада с проблем, моля, отворете формуляра в " #~ "автоматично отворилия се прозорец на уеб-браузера!" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Ако не правехте нищо конфиденциално (въвеждане на пароли или друга лична " #~ "информация), можете да помогнете да бъде подобрено приложението, като " #~ "докладвате за проблема." #~ msgid "Application problem" #~ msgstr "Проблем с приложение" #~ msgid "_Send Report" #~ msgstr "_Изпращане на доклад" #~ msgid "Restart _Program" #~ msgstr "Рестартиране на _програмата" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Съжалявам,пакета \"%s\" не успя да се " #~ "инсталира или надгради.</span>" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Намален доклад (при бавна Интернет връзка; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Игнориране на бъдещи сривове в тази версия на програмата" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Това ще премахне голяма част от доклада. Тази част е изключително полезна за " #~ "разработчиците при откриване на проблема, но може да е твърде голяма за " #~ "качване, ако имате бавна Интернет връзка." #~ msgid "_Report Problem..." #~ msgstr "_Докладване на проблем..." #~ msgid "Kernel problem" #~ msgstr "Проблем с ядрото" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Можете да помогнете на разработчиците да поправят пакета като докладвате за " #~ "проблема." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Това не е автентичен пакет %s" #~ msgid "Content of the report" #~ msgstr "Съдържание на доклада" #~ msgid "Package problem" #~ msgstr "Проблем с пакет" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Вашата система срещна сериозен проблем с ядрото." #~ msgid "&Report Problem..." #~ msgstr "&Докладване на проблем..." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Можете да помогнете на разработчиците да поправят проблем като го докладвате." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Пакетът \"%s\" не успя да се инсталира или надгради." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Ако не правите нищо поверително (въведени пароли или друга\n" #~ "лична информация), Вие може да помогнете за подобряване на\n" #~ "програмата като докладване проблема." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s се затвори неочаквано на %s в %s." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Изпращане на пълен доклад (препоръчително; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Изпращане на &кратък доклад (бавна интернет връзка; %s)" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Това се случи при предишно заспиване и попречи на правилното продължаване." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Това се случи при предишно дълбоко заспиване и попречи на правилното " #~ "продължаване." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [параметри] <доклад за проблем apport | ID на грешката>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "неправилен брой аргументи; използвайте --help за кратка справка" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/bn.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000113131�14416106601�011426� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Bengali translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: Khandakar Mujahidul Islam <suzan229@gmail.com>\n" "Language-Team: Bengali <bn@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: bn\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "ক্র্যাশ প্রতিবেদন" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>দুঃখিত, আভ্যন্তরীন ত্রুটি ঘটেছে।</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "যদি আপনি অতিরিক্ত কোন সমস্যা উল্লেখ করেন, কম্পিউটার পুনরায় আরম্ভ করার " "চেষ্টা করুন।" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "এই সমস্যা নির্ধারনে সহায়তা করতে ত্রুটির প্রতিবেদন পাঠান" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "এই প্রোগ্রাম সংস্করনের ভবিষ্যত সমস্যা উপেক্ষা করুন" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "বিস্তারিত প্রদর্শন করুন" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "স্থানীয়ভাবে পরীক্ষা করুন (_E)" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "পরিত্যাগ পরিবেষ্টিত" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "চালিয়ে যান" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "দুঃখিত, %s অপ্রত্যাশিতভাবে বন্ধ হয়ে গেছে।" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "দুঃখিত, %s অভ্যন্তরীণ ত্রুটি অভিজ্ঞ হয়েছে।" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "পাঠান" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "পুনরায় আরম্ভ করুন" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "প্যাকেজ: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "দুঃখিত, সফটওয়্যার ইন্সটল করার সময় সমস্যা হয়েছে।" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "অ্যাপ্লিকেশন %s অপ্রত্যাশিতভাবে বন্ধ হয়ে গেছে।" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "এই ধরণের ভবিষ্যৎ সমস্যা উপেক্ষা করুন" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "বিস্তারিত আড়াল করুন" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "ব্যাচ অপারেশনের জন্য, বার্তা লগ করতে টাইমস্ট্যাম্প শুরুতে যোগ করুন" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "এই প্যাকেজ সঠিকরূপে ইনস্টল করা যাবেনা বলে মনে হচ্ছে" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "এটি একটি অফিসিয়াল %s প্যাকেজ নয়। অনুগ্রহ করে কোনো তৃতীয় পক্ষের প্যাকেজ " "অপসারণ করুন এবং পুনরায় চেষ্টা করুন।" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "অজানা প্রোগ্রাম" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "দুঃখিত, \"%s\" প্রোগ্রামটি অপ্রত্যাশিতভাবে বন্ধ হয়ে গেল" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s এ সমস্যা" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "স্বয়ংক্রিয়ভাবে সমস্যাটি পর্যালোচনা করা এবং ডেভেলপারদেরকে রিপোর্ট করার জন্য " "আপনার কম্পিউটারে পর্যাপ্ত পরিমাণ খালি মেমোরি নেই।" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "অবৈধ সমস্যা রিপোর্ট" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "এই সমস্যা রিপোর্টটিতে আপনার প্রবেশাধিকার নেই।" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "ত্রুটি" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "কোন প্যাকেজ নির্দিষ্ট করা হয় নি" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "অনুমতি প্রত্যাখ্যাত" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "%s প্যাকেজের অস্তিত্ব নেই" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "কি ধরণের সমস্যা আপনি রিপোর্ট করতে চান?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "অজানা লক্ষণ" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "\"%s\" লক্ষণটি পরিচিত নয়।" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "ক্র্যাশ পরীক্ষা করতে টার্মিনালের উইন্ডোর অ্যাপোর্ট-অনুসন্ধান চালু করা হবে।" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "gdb সেশনে সচল" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "ডিবাগ প্রতীকে ডাউনলোড করা ছাড়া gdb সেশনে সচল" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "সম্পূর্ণ প্রতীকী স্ট্যাক ট্রেস দ্বারা %s হালনাগাদ করুন" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "প্রোগ্রাম %s দ্বারা সমস্যা ঘটেছে, ক্র্যাশ সংঘটন হতে যা পরিবর্তিত হয়েছে।" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "এই সমস্যা প্রতিবেদন প্রক্রিয়াকরণ প্রচেষ্টার সময় একটি ত্রুটি ঘটেছে:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "ওয়েব ব্রাউজার চালু করতে অসমর্থ" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "%s খুলতে ওয়েব চালু করতে অসমর্থ" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "%s বাগ পর্যবেক্ষণ সিস্টেমের জন্য আপনার অ্যাকাউন্টের তথ্য দিন" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "নেটওয়ার্ক সমস্যা" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "বিধস্ত ডাটাবেসে সংযোগ করতে পারছি না, অনুগ্রহ করে আপনার ইন্টারনেট সংযুক্তি " "পরীক্ষা করুন।" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "এই বিধস্ত রিপোর্ট প্রক্রিয়াজাত করার জন্য আপনার সিস্টেমে পর্যাপ্ত মেমোরি নেই।" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "সমস্যাটি রিপোর্ট করা যাবে না:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "সমস্যাটি ইতঃপূর্ব জ্ঞাত" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "এই সমস্যাটি ইতোমধ্যে ডেভেলপারকে প্রতিবেদন করা হয়েছে। আপনাকে ধন্যবাদ!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "এগিয়ে যাওয়ার জন্য যে কোন একটি কী চাপুন..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "আপনি কি করতে পছন্দ করেন? আপনার বাছাইযোগ্য তালিকা:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "স্থানীয়ভাবে পরীক্ষা করুন (&E)" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "বাতিল (&C)" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "দুঃখিত, অ্যাপ্লিকেশন %s অপ্রত্যাশিতভাবে বন্ধ হয়ে গেছে।" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/br.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077420�14416106601�011444� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Breton translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Breton <br@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: br\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/bs.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000126065�14416106601�011445� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Bosnian translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Bosnian <bs@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: bs\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Otkaži" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Uredu" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Izvještaj o padu" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Nažalost, desila se interna greška.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Ako primjetite dodatne probleme, pokušajte ponovo pokrenuti računar." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Pošaljite izvještaj o grešci kako bi pomogli u njenoj popravci" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignoriši buduće probleme ove verzije programa" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Prikaži detalje" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Ispitaj lokalno" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Ostavi zatvoreno" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Nastavi" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Sakupljanje informacija o problemu</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Prikupljaju se informacije koje mogu da pomognu autorima u rješavanju " "problema koji ste prijavili." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Šaljem informaciju o problemu" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Šaljem informaciju o problemu</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Prikupljene informacije se šalju sistemu za praćenje grešaka. Ovo može " "potrajati par minuta." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport datoteka urušavanja" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binarni podaci)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Nažalost, aplikacija %s se zaustavila neočekivano." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Nažalost, %s je neočekivano zatvoren." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Nažalost, u %s se desila interna greška." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Želite li da pošaljete izvještaj autorima?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Pošalji" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Forsiraj zatvoreno." #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Ponovo pokreni" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Aplikacija %s ne odgovara." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Program \"%s\" je prestao odgovarati." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paket: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Nažalost, desio se problem pri instalaciji programa." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Aplikacija %s je imala internu grešku." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Program %s je neočekivano zatvoren." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignoriši buduće probleme ove vrste" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Sakrij detalje" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Upotreba: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Odredišni direktorij postoji i nije prazan." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Korisničko ime:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Šifra:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Prikupljanje informacija o problemu" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Prikupljanje informacija o problemu" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Sakupljene informacije će biti poslane razvojnom timu kako bi poboljšali " "program. Ovo može potrajati par minuta." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Šaljem informaciju o problemu" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Sakupljanje sistemskih informacija" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Potrebna je autentifikacija za prikupljanje sistemskih informacija za " "prijavu ovog problema" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Izvještaji o problemima u sistemu" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Molimo unesite svoju šifru kako bi pristupili izvještaju o problemima " "nastalim u sistemskim programima" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Prijavi problem..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Prijavi greške u radu autorima" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Vidi man stranicu za detalje" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "navedi log datoteku koju proizvodi valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "iskoristi prethodno kreiran zaštićeni direktorij (SDIR) ili, ako ne postoji, " "kreiraj ga" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "nemoj kreirati ili koristiti zaštićeni direktorij za debagerske simbole, ali " "koristi instalirane debagerske simbole" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "iskoristi prethodno kreirani keš direktorij (CDIR), ako ne postoji, kreiraj " "ga" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "prijavi napredak o preuzimanjui/instalaciji kada se instaliraju paketi u " "zaštićenu kutiju" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "izvršni program koji se pokreće pod valgrind memcheck za otkrivanje otivanja " "memorije" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Instaliraj dodatne pakete u zatvorenu kutiju (može se navesti više puta)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Greška: %s nije izvršni program. Prekidam." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Ne unosi nove tragove u izvještaj, već ih zapisuje u ''stdout''." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Pokreće interaktivnu ''gdb'' sesiju sa jezgrom pripremljenog izvještaja (-o " "ignorisano; neće prepisati izvještaj)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Zapisuje izmijenjeni izvještaj u zadatu datoteku umjesto da mijenja " "originalni." #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Uklanja prikaz jezgra iz izvještaja nakon regeneracije traga gomile" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Zaobiđi JezgruDatoteke izvještaja" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Zaobiđi IzvršnuPutanju izvještaja" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Zamenjuje ProcMaps izveštaja" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Obnavlja izveštajnu informaciju paketa" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Napravi privremenu zatvorenu kutiju i preuzmi pakete u nju. Bez ove opcije " "se podrazumijeva da su neophodni paketi i debagerski simboli već tamo. " "Argument pokazuje na osnovni direktorij paketskog sistema, ako navedete " "\"sistem\" koristiće se sistemske konfiguracione datoteke, ali će samo tada " "biti u mogućnosti uloviti trag sistemskim padovima koji su se desili na " "trenutno izvršavajućoj verziji." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Prijavi napredak preuzimanja/instaliranja pri instaliranju paketa u " "zatvorenu kutiju" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Pridodaj oznaku vremena porukama dnevnika, za grupnu radnju" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Kreirajte i koristite tuđe repozitorije sa izvora navedenih u izvještajima" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Keš direktorij za pakete preuzete u zatvorenu kutiju" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Direktorij za otpakovane pakete. Buduća pokretanja pretpostaviti da su već " "preuzeti paketi takođe izdvojeni u zatvorenu kutiju." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Putanja do datoteke sa informacijama autentifikacije baze podataka " "urušavanja. Ovo se koristi kada navodite ID urušavanja da biste poslali " "pronađene tragove steka (samo ako ni -g, ni -o, ni -s nisu navedeni)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Prikazuje pronađene tragove steka i traži potvrdu prije nego što ih pošalje " "u bazu podataka o urušavanjima." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Putanja do duplikata ''sqlite'' baze podataka (inicijalno: ne vršiti " "provjeru duplikata)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Ne možete koristiti -C bez -S. Prekidam." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Da li je uredu da da šaljete ovo kao prilog? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Izgleda da ovaj paket nije ispravno instaliran" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ovo nije zvaničan %s paket. Uklonite neki paket treće strane i pokušajte " "opet." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Imate neke zastarjele verzija paketa instalirane. Molim Vas nadogradite " "sljedeće pakete i provjerite da li i dalje dolazi do problema:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "nepoznat program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Izvinite, program „%s“ je neočekivano zatvoren" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problem u %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Vaš računar nema dovoljno slobodne memorije da automatski analizira problem " "i pošalje izvještaj autorima." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Neispravan izvještaj o problemu" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Nemate prava pristupa izvještavanju o problemu." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Greška" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Nema dovoljno prostora na disku za obradu ovog izvještaja." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nije naveden paket." #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "Morate navesti paket ili PID. Pogledajte --help za više informacija" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Dozvola je odbijena" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Navedeni proces vam ne pripada. Molim pokrenite ovaj proces kao vlasnik ili " "root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Nevažeći PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Specificirani PID ne pripada programu." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Skripta simptoma %s nije odredio nijedan poduticajni paket" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Paket %s ne postoji" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Ne mogu da napravim izvještaj" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Slanje izveštaja o problemu" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Vi niste izvještač ili niste upisani za izvještavanje o ovom problemu, ili " "je izvještaj duplikat ili je već zatvoren.\n" "\n" "Molim napravite novi izvještaj koristeći \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Vi niste izvještač o ovom problemu. Mnogo je lakše označiti 'grešku' kao " "duplikat nekog drugog problema nego praviti novi izvještaj.\n" "\n" "Preporučujemo vam da ubacite izvještaj o grešci u neki već postojeći " "koristeći \"apport-bug\" i da isti prokomentarišete.\n" "\n" "Da li zaista želite da nastavite?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Nema dodatno prikupljenih informacija." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "O kakvom problemu želite da izvijestite?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Nepoznati simptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Simptom \"%s\" nije poznat." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Nakon zatvaranja ove poruke, kliknite na prozor aplikacije da prijavite " "problem u vezi toga." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop nije uspio da odredi ID procesa prozora" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Navedite ime paketa." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Dodajte dodatnu oznaku u izvještaju. Može biti navedeno više puta." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opcije] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Pokrenuti u režimu prijavljivanja greške. Zahtjeva --package i jedan " "opcionalan --pid, ili samo --pid. Ako nijedan nije dat, prikaži listu " "poznatih simptoma. (Podrazumijeva se ako ako je dat samo jedan argument.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" "Kliknite na prozor kao odredište za podnošenje izvještaja o problemu." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Pokrenuti u režimu slanja greške. Može da sadrži opcionalni --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Popunite izvještaj greške o simptomu. (Podrazumijeva se ako je ime simptoma " "dato kao jedini argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Specificirajte ime paketa u --file-bug režimu. Ovo je opcija ako je " "specificiran --pid. (Podrazumijeva se ako je ime paketa dato kao jedini " "argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Navedite izvršavajući program u --file-bug režimu. Ako je ovo navedeno, " "izvještaj o greškama će sadržati više informacija. (ugrađeno ako je PID kao " "jedini argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Navedeni pid je viseća aplikacija" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Prijavite o padu iz date .apport ili .crash datoteke umjesto jednog " "pripravnog u %s. (Podrazumijeva se ako je datoteka data kao jedini argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "U režimu podnošenja greški , snimi prikupljene informacije u datoteku " "umjesto da izvještavanja. Ova datoteka se zatim može prijaviti kasnije s " "druge mašine." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Prikaži broj verzije Apport-a." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "Ovo će pokrenuti „apport-retrace“ u prozoru terminala da ispita pad." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Pokreni gdb sesiju" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Pokreni gdb sesiju bez preuzimanja simbola za uklanjanje grešaka" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Ažuriraj %s potpunom simboličkim tragom gomile" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Ovaj izvještaj o problemu se odnosi na program koji nije više instaliran." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Problem se desio s programom %s koji je promijenjen nakon što se dogodio pad." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Ovaj izvještaj o greški je oštećen i ne može da se obradi." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Izvještaj pripada paketu koji nije instaliran." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Desila se greška u pokušaju obrade izvještaja o problemu:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Ne mogu da utvrdim paket ili izvorno ime paketa." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Ne mogu da pokrenem internet pretraživač" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Ne mogu da pokrenem internet pretraživač da bih otvorio %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Molim unesite vaše informacije o članstvu za %s sistem praćenja grešaka." #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Mrežni problem" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Ne mogu da uspostavim vezu sa bazom podataka o urušavanjima, molim " "provjerite vašu internet vezu." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Nedostatak memorije" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Vaš sistem nema dovoljno memorije da obradi ovaj izvještaj o padu sistema." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Problem ne može biti prijavljen:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problem je već poznat" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ovaj problem je već prijavljen u izvještaju o greški prikazanom u internet " "pretraživaču. Molim Vas provjerite da li možete da dodate bilo kakvu dodatnu " "informaciju koja bi mogla da bude od pomoći autorima." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ovaj problem je već prijavljen programerima. Hvala vam!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Ovo se desilo prilikom prethodnog suspendovanja i spriječilo je sistem da se " "ispravno obnovi." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Ovo se desilo prilikom prethodne hibernacije i spriječilo je sistem da se " "ispravno obnovi." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Proces restauriranja se ''zaledio'' pri samom kraju i sve izgleda kao da je " "uspješno završen." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Pritisnite bilo koju tipku za nastavak ..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Šta biste željeli da uradite? Vaše mogućnosti su:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Molim Vas izaberite (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bajta)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Posle slanja izvještaja o problemu, molim Vas popunite formular u\n" "automatski otvorenom internet pretraživaču." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Pošalji izvještaj (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Ispitaj lokalno" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Pogledaj izvještaj" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Zadrži datoteku o izvještaju za kasnije slanje ili kopiranje na neko drugo " "mjesto" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Prekini i &ignoriši buduće greške u radu ove verzije programa" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Odustani" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Datoteka izvještaja o problemu:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Potvrdi" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Greška: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Prikupljena informacija se šalje razvojnom timu da poprave \n" "program. Ovo može potrajati nekoliko minuta." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Prikupljena informacija se šalje sistemu za otkrivanje grešaka.\n" "Ovo može potrajati nekoliko minuta." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Gotovo" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ništa" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Izabrano: %s. Više izbora:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Izbori:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Putanja do datoteke (kliknite Enter tipku za otkazivanje):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Datoteka ne postoji." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Ovo je direktorijum." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" "Da bi ste nastavili, morate da posjetite sledeću internet lokaciju (URL):" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Sada možete pokrenuti pretraživač, ili kopirati ovu internet lokaciju u " "pretraživaču na nekom drugom računaru." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Pokrenuti pretraživač sada" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nema očekujućeg izvještaja o padu. Probajte --help za više informacija." #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Ovo će izbaciti neke velike stvari iz izvještaja. Ovi su veoma korisni za " #~ "programere pri ispravljanju problema, ali mogu biti veliki za vaš upload ako " #~ "imate spor priključak na Internet." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Ovo nije originalni %s paket" #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Do ovoga je došlo prilikom prethodne hibernacije što je istu spriječilo da " #~ "pravilno nastavi." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Do ovoga je došlo prilikom prethodne suspenzije što je istu spriječilo da " #~ "pravilno nastavi." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Vaš sistem može postati nestabilan te će ga biti potrebno restartovati." ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ca.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000141647�14416106601�011427� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Catalan translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # David Planella Molas <david.planella@gmail.com>, 2007. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: David Planella <david.planella@gmail.com>\n" "Language-Team: Ubuntu Catalan Translators list <Ubuntu-l10n-" "ca@lists.ubuntu.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Canceŀla" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "D'acord" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Informe de fallades" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>S'ha produït un error intern.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Si observeu altres problemes, intenteu reiniciar l'ordinador." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Envia un informe d'error per ajudar a solucionar aquest problema" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignora els problemes d'aquesta versió del programa en el futur" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Mostra els detalls" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examina localment" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Mantén-la tancada" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continua" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>S'està recollint informació sobre el problema</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "S'està recollint informació que pot ajudar els desenvolupadors a solucionar " "el problema del qual esteu informant." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "S'està pujant la informació del problema" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>S'està pujant informació sobre el problema</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "La informació recollida s'està enviant al sistema de seguiment d'errors. " "Això pot trigar uns quants minuts." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Fitxer de fallada de l'Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(dades binàries)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "L'aplicació %s s'ha aturat inesperadament." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "%s s'ha tancat inesperadament." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "%s ha experimentat un error intern." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Voleu enviar l'informe del problema als desenvolupadors?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Envia" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Força el tancament" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Torna-la a executar" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "L'aplicació %s ha deixat de respondre." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "El programa «%s» ha deixat de respondre." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paquet: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "S'ha produït un problema mentre s'instal·lava el programa." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "L'aplicació %s ha experimentat un error intern." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "L'aplicació %s s'ha tancat inesperadament." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "En el futur ignora problemes d'aquest tipus" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Oculta els detalls" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Utilització: %s <informe> <directori objectiu>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "El directori de destinació existeix i no està buit." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nom d'usuari:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Contrasenya:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "S'està recollint informació sobre el problema" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "S'està recollint informació sobre el problema" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "La informació recollida es pot enviar als desenvolupadors per a millorar " "l'aplicació. Això pot trigar uns quants minuts." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "S'està pujant la informació del problema" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Recopila informació del sistema" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Cal autenticació per recollir informació del sistema per l'informe d'aquest " "problema" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Informes d'error del sistema" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Introduïu la vostra contrasenya per accedir als informes d'error dels " "programes del sistema" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Informeu d'un problema..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Informeu els desenvolupadors sobre un funcionament erroni" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" "Vegeu la pàgina de manual (ordre «man») per consultar-ne els detalls." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "Especifiqueu el nom del fitxer de registre que produeix el Valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "Reutilitza una carpeta de proves (SDIR) existent o bé crea'n una de nova" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "No creïs o reutilitzis una carpeta de proves per als símbols de depuració " "addicionals. Utilitza només els símbols de depuració instal·lats." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "Reutilitza una carpeta de memòria cau (CDIR) existent o bé crea'n una de nova" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "Mostra un informe del progrés de les baixades i instal·lacions en instal·lar " "paquets dins de la carpeta de proves" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "El nom del fitxer executable que s'inicia a través de l'eina «memcheck» del " "Valgrind per detectar pèrdues de memòria" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Instal·la un paquet addicional a l'entorn de proves (es pot especificar " "diverses vegades)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "S'ha produït un error: %s no és un fitxer executable. S'aturarà." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Pot ser que el vostre sistema esdevingui ara inestable i que l'hàgiu de " "reiniciar." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "En lloc de posar les traces noves a l'informe escriviu-les a la sortida " "estàndard." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Inicieu una sessió interactiva del gdb amb el bolcat de memòria de l'informe " "(-o s'ignorarà; no torna a escriure l'informe)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Escriviu l'informe modificat en el fitxer proporcionat en lloc de canviar " "l'informe original" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Suprimiu el bolcat de memòria de l'informe després de la regeneració de la " "traça de la pila" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Sobreescriu el CoreFile de l'informe" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Sobreescriu l'ExecutablePath de l'informe" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Sobreescriu el ProcMaps de l'informe" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Torna a construir la informació del paquet de l'informe" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Construïu un entorn de proves temporal i baixeu-hi/instal·leu-hi els paquets " "i els símbols de depuració necessaris. Sense aquesta opció s'assumeix que " "els paquets i els símbols de depuració necessaris ja estan instal·lats al " "sistema. L'argument apunta al directori base de la configuració del sistema " "de paquets; si especifiqueu «system», s'utilitzaran els fitxers de " "configuració del sistema però només es podran seguir les fallades que hagin " "passat a la versió actualment en execució." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Informa del progrés de la baixada/instal·lació quan s'instal·lin paquets a " "l'entorn de proves" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Afegeix marques horàries als missatges del registre per poder-los processar " "en lot" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Crea i usa repositoris de tercers a partir de fonts especificades a informes" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Directori temporal per als paquets baixats a l'entorn de proves" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "El directori per als paquets descomprimits. Les pròximes execucions " "assumiran que qualsevol paquet que s'hagi baixat també s'ha extret en aquest " "entorn de proves." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Camí a un fitxer amb la informació d'autenticació de la base de dades de " "fallades. S'utilitza quan s'especifica un identificador d'error per a pujar " "les traces de pila tornades a traçar (només si no s'especifiquen -g, -o o -s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Mostra les traces de pila tornades a traçar i demana confirmació abans " "d'enviar-les a la base de dades de fallades." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Camí a la base de dades sqlite de duplicats (per defecte: sense comprovació " "de duplicat)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "No podeu utilitzar l'opció -C sense l'opció -S. S'interromprà." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Esteu d'acord en enviar-los com a adjuncions? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Sembla ser que aquest paquet no s'ha instal·lat correctament" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Aquest no és un paquet oficial del %s. Suprimiu tots els paquets de tercers " "i torneu-ho a provar." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Teniu algunes versions de paquets obsolets instal·lades. Hauríeu " "d'actualitzar els paquets següents i comprovar si el problema persisteix:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programa desconegut" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "El programa «%s» s'ha tancat de manera inesperada" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problema a %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "El vostre sistema no té prou memòria disponible per a analitzar el problema " "de manera automàtica i enviar un informe d'error als desenvolupadors." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Informe d'error no vàlid" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "No teniu permís per a accedir a aquest informe d'error." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Error" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "No hi ha prou espai disponible per a processar aquest informe." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "No s'ha especificat cap paquet" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Cal que especifiqueu un paquet o un PID. Consulteu --help per a obtenir més " "informació." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Se us ha denegat el permís" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "El procés especificat no us pertany. Hauríeu d'executar aquest programa com " "a propietari del procés o bé com a superusuari." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID no vàlid" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "L'identificador de procés especificat no pertany a cap programa." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "L'script de símptomes %s no ha determinat cap paquet afectat" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "El paquet %s no existeix" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "No es pot crear l'informe" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "S'està actualitzant l'informe del problema" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "No sou ni l'informador ni el subscriptor d'aquest informe de problema, o bé " "l'informe és un duplicat o ja està tancat.\n" "\n" "Creeu un informe nou utilitzant l'«apport-bug»." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "No sou l'informador d'aquest informe d'error. És molt més senzill marcar un " "error com a duplicat d'un altre que moure els vostres comentaris i adjunts a " "un error nou.\n" "\n" "Per tant, us recomanem que ompliu un informe d'error nou utilitzant " "l'«apport-bug» i feu un comentari en aquest error sobre el que esteu " "omplint.\n" "\n" "Segur que voleu continuar?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "No s'ha recollit informació addicional." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Sobre quin tipus de problema voleu informar?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Símptoma desconegut" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Es desconeix el símptoma «%s»." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Després de tancar aquest missatge feu clic a una finestra de l'aplicació per " "informar d'un problema sobre aquesta." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" "L'xprop ha fallat en determinat l'identificador de procés de la finestra" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <número de l'informe>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Especifiqueu el nom del paquet." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Afegeix una etiqueta addicional a l'informe. Es pot especificar diverses " "vegades." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opcions] [símptoma|pid|paquet|camí al programa|fitxer .apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Comenceu en el mode d'enviament d'errors. Requereix un --package i un --pid " "opcional o només un --pid. Si no se'n proporciona cap, es mostrarà una " "llista de símptomes coneguts. (Implícit si només es proporciona un argument)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Feu clic a una finestra per associar-la a l'informe d'error." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Inicieu en mode d'actualització d'errors. Admet un --package opcional." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Ompliu un informe d'error sobre un símptoma. (Implícit si només es " "proporciona el nom del símptoma com a argument)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Especifiqueu el nom del paquet en el mode --file-bug. Això és opcional si " "s'ha especificat un --pid. (Implícit si només es proporciona el nom del " "paquet com a argument)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Especifiqueu un programa executant-se en mode --file-bug. Si s'especifica, " "l'informe d'error contindrà més informació (en cas que el pid es doni com a " "únic argument)." #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "El PID proporcionat és una aplicació que es penja." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Informeu de la fallada a partir d'un fitxer .apport o .crash en lloc dels " "pendents a %s. (Implícit si només es proporciona el fitxer com a argument)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "En el mode d'enviament d'errors, desa la informació obtinguda en un fitxer " "en lloc d'enviar l'informe. Aquest fitxer es pot enviar més tard des d'una " "màquina diferent." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Mostra el número de versió de l'Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Això executarà l'Apport-retrace en un terminal per examinar la fallada." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Executa una sessió del Gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" "Executa una sessió del Gdb sense descarregar els símbols de depuració" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Actualitza el fitxer %s amb la traça simbòlica completa de la pila." #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Aquest informe de problema fa referència a un programa que ja no està " "instal·lat." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "El problema ha passat amb el programa %s, el qual ha canviat des que es " "produí la fallada." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Aquest informe d'error està malmès i no es pot processar." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "L'informe és per a un paquet que no està instal·lat." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "S'ha produït un error mentre s'intentava processar l'informe d'error:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" "No s'ha pogut determinar el nom del paquet del programa o del paquet del " "codi font." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "No s'ha pogut iniciar el navegador web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "No s'ha pogut iniciar el navegador web per a obrir %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Introduïu la informació del vostre compte per al sistema de seguiment " "d'errors %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problema de la xarxa" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "No es pot connectar a la base de dades de fallades, comproveu la vostra " "connexió a Internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Exhauriment de la memòria" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "El vostre sistema no té prou memòria disponible per a processar aquest " "informe de fallada." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "No es pot informar del problema:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "El problema ja és conegut" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ja hi ha informació sobre aquest problema en l'informe d'error que es mostra " "al navegador web. Comproveu si podeu afegir cap informació addicional que " "pugui ser d'ajuda per als desenvolupadors." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" "Aquest problema ja fou enviat als desenvolupadors anteriorment. Us agraïm la " "vostra ajuda." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Això va passar durant una aturada temporal prèvia, i va prevenir el sistema " "de continuar correctament." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Això va passar durant una hibernació prèvia, i va prevenir el sistema de " "continuar correctament." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "El procés de represa es va penjar molt a prop del final i per això semblarà " "que s'hagi completat correctament." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Premeu qualsevol tecla per a continuar…" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Què voleu fer? Teniu les opcions següents:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Trieu (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Després d'haver enviat l'informe, ompliu el formulari que veureu en el\n" "navegador web que s'iniciarà de manera automàtica." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "En&via l'informe (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examina localment" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Visualitza l'informe" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Desa el fitxer de l'informe per a enviar-lo més tard o bé copiar-lo a algun " "altre lloc" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Cancel·la i &ignora les fallades d'aquesta versió del programa en el futur" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Cancel·la" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Fitxer de l'informe d'error:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirma" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Error: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "La informació recollida es pot enviar als desenvolupadors per a millorar\n" "l'aplicació. Això pot trigar uns quants minuts." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "La informació recollida s'està enviant al sistema de seguiment d'errors.\n" "Això pot trigar uns quants minuts." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Fet" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "cap" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "S'ha seleccionat: %s. Opcions múltiples:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Opcions:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Camí al fitxer (premeu Retorn per a cancel·lar):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "El fitxer no existeix." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Això és un directori." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Per a continuar, heu d'anar a l'URL següent:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Podeu iniciar un navegador o copiar aquest URL a un navegador d'un altre " "ordinador." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Inicia un navegador" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "No hi ha cap informe d'error pendent. Proveu amb --help per a obtenir més " "informació." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Podeu ajudar els desenvolupadors a solucionar el problema si els informeu de " #~ "l'error." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Ha fallat la instal·lació o actualització del paquet «%s»." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Informe complet (recomanat; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Voleu enviar l'informe del problema als desenvolupadors?</b></big>\n" #~ "\n" #~ "Després d'haver enviat l'informe, ompliu el formulari que veureu en el " #~ "navegador web que s'iniciarà de manera automàtica." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Si no és que estàveu fent quelcom confidencial (escrivint alguna contrasenya " #~ "o bé alguna altra informació privada), podeu contribuir a la millora del " #~ "programa informant del problema." #~ msgid "Application problem" #~ msgstr "Problema de programari" #~ msgid "_Send Report" #~ msgstr "_Envia l'informe" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Si no és que estàveu fent quelcom confidencial (escrivint alguna " #~ "contrasenya\n" #~ "o bé alguna altra informació privada), podeu contribuir a la millora del\n" #~ "programa informant del problema." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s s'ha tancat de manera inesperada el %s a les %s." #~ msgid "Restart _Program" #~ msgstr "Reinicia el _programa" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Ha fallat la instal·lació o " #~ "actualització del paquet «%s».</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "En&via l'informe complet (es recomana; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "" #~ "Informe reduït (en cas que tingueu una connexió lenta a Internet; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignora les fallades d'aquesta versió del programa en el futur" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Envia l'informe &resumit (per connexions d'Internet lentes; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Això suprimirà certs elements de mida considerable de l'informe. Aquests " #~ "elements són normalment molt útils per als desenvolupadors en depurar el " #~ "problema. Tot i això, pot ser que si els incloeu en l'informe la mida " #~ "d'aquest sigui massa gran per a pujar-lo si és que teniu una connexió lenta " #~ "a Internet." #~ msgid "&Report Problem..." #~ msgstr "Info&rmeu sobre el problema..." #~ msgid "_Report Problem..." #~ msgstr "Info_rma sobre el problema..." #~ msgid "Kernel problem" #~ msgstr "Problema del nucli" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Podeu ajudar els desenvolupadors a arreglar el paquet de programari si els " #~ "informeu de l'error." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Aquest no és un paquet %s genuí" #~ msgid "Content of the report" #~ msgstr "Contingut de l'informe" #~ msgid "Package problem" #~ msgstr "Problema del paquet" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "S'ha produït un error greu del nucli." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Això va succeir durant la hibernació anterior i us va impedir reprendre " #~ "correctament." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Això va succeir durant l'aturada temporal anterior i us va impedir reprendre " #~ "correctament." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "" #~ "%prog [opcions] <informe de problema de l'Apport | identificador de la " #~ "fallada>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "us cal o bé realitzar una operació local (-s, -g o -o) o bé proporcionar un " #~ "fitxer d'autenticació (--auth); utilitzeu --help per a obtenir una breu ajuda" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "nombre incorrecte d'arguments; utilitzeu --help per a obtenir una breu ajuda" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "L'aplicació %s s'ha tancat inesperadament." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "El vostre sistema pot esdevenir inestable i que sigui necessari reiniciar-lo." �����������������������������������������������������������������������������������������apport-2.20.11/po/ca@valencia.po��������������������������������������������������������������������0000664�0000000�0000000�00000112017�14416106601�013217� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Catalan (Valencian) translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Catalan (Valencian) <ca@valencia@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Informe de fallades" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>S'ha produït un error intern.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Si observeu altres problemes, intenteu reiniciar l'ordinador." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Envia un informe d'error per ajudar a solucionar este problema" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignora els problemes d'esta versió del programa en el futur" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Mostra els detalls" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examina localment" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Mantén-la tancada" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continua" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "L'aplicació %s s'ha aturat inesperadament." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "%s s'ha tancat inesperadament." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "%s ha experimentat un error intern." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Envia" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Força el tancament" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Torna-la a executar" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "L'aplicació %s ha deixat de respondre." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "El programa «%s» ha deixat de respondre." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paquet: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "S'ha produït un problema mentre s'instal·lava el programa." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "L'aplicació %s ha experimentat un error intern." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "L'aplicació %s s'ha tancat inesperadament." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "En el futur ignora problemes d'este tipus" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Oculta els detalls" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Recopila informació del sistema" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Cal autenticació per recollir informació del sistema per l'informe d'este " "problema" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Informes d'error del sistema" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Introduïu la vostra contrasenya per accedir als informes d'error dels " "programes del sistema" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Vegeu la pàgina de manual (orde «man») per consultar-ne els detalls." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "Especifiqueu el nom del fitxer de registre que produeix el Valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "Reutilitza una carpeta de proves (SDIR) existent o bé crea'n una de nova" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "No crees o reutilitzis una carpeta de proves per als símbols de depuració " "addicionals. Utilitza només els símbols de depuració instal·lats." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "Reutilitza una carpeta de memòria cau (CDIR) existent o bé crea'n una de nova" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "Mostra un informe del progrés de les baixades i instal·lacions en instal·lar " "paquets dins de la carpeta de proves" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "El nom del fitxer executable que s'inicia a través de l'eina «memcheck» del " "Valgrind per detectar pèrdues de memòria" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Instal·la un paquet addicional a l'entorn de proves (es pot especificar " "diverses vegades)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "S'ha produït un error: %s no és un fitxer executable. S'aturarà." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Construïu un entorn de proves temporal i baixeu-hi/instal·leu-hi els paquets " "i els símbols de depuració necessaris. Sense esta opció s'assumeix que els " "paquets i els símbols de depuració necessaris ja estan instal·lats al " "sistema. L'argument apunta al directori base de la configuració del sistema " "de paquets; si especifiqueu «system», s'utilitzaran els fitxers de " "configuració del sistema però només es podran seguir les fallades que hagen " "passat a la versió actualment en execució." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Informa del progrés de la baixada/instal·lació quan s'instal·len paquets a " "l'entorn de proves" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Afig marques horàries als missatges del registre per poder-los processar en " "lot" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Directori temporal per als paquets baixats a l'entorn de proves" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "El directori per als paquets descomprimits. Les pròximes execucions " "assumiran que qualsevol paquet que s'haja baixat també s'ha extret en este " "entorn de proves." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "No podeu utilitzar l'opció -C sense l'opció -S. S'interromprà." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Pareix ser que este paquet no s'ha instal·lat correctament" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Este no és un paquet oficial del %s. Suprimiu tots els paquets de tercers i " "torneu-ho a provar." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Especifiqueu el nom del paquet." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Afig una etiqueta addicional a l'informe. Es pot especificar diverses " "vegades." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Especifiqueu un programa executant-se en mode --file-bug. Si s'especifica, " "l'informe d'error contindrà més informació (en cas que el pid es doni com a " "únic argument)." #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "El PID proporcionat és una aplicació que es penja." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Això executarà l'Apport-retrace en un terminal per examinar la fallada." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Executa una sessió del Gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" "Executa una sessió del Gdb sense descarregar els símbols de depuració" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Actualitza el fitxer %s amb la traça simbòlica completa de la pila." #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "El problema ha passat amb el programa %s, el qual ha canviat des que es " "produí la fallada." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "S'ha produït un error mentre s'intentava processar l'informe d'error:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" "Este problema ja fou enviat als desenvolupadors anteriorment. Vos agraïm la " "vostra ajuda." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examina localment" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "L'aplicació %s s'ha tancat inesperadament." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignora les fallades d'aquesta versió del programa en el futur" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Això suprimirà certs elements de mida considerable de l'informe. Aquests " #~ "elements són normalment molt útils per als desenvolupadors en depurar el " #~ "problema. Tot i això, pot ser que si els incloeu en l'informe la mida " #~ "d'aquest sigui massa gran per a pujar-lo si és que teniu una connexió lenta " #~ "a Internet." #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ignora les fallades d'aquesta versió del programa en el futur" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Aquest no és un paquet %s genuí" #~ msgid "Send this data to the developers?" #~ msgstr "Voleu enviar aquestes dades als desenvolupadors?" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Això va succeir durant l'aturada temporal anterior i vos va impedir " #~ "reprendre correctament." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ce.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077422�14416106601�011432� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Chechen translation for apport # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2014. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2014-08-11 10:26+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Chechen <ce@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ce\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ceb.po����������������������������������������������������������������������������0000664�0000000�0000000�00000077651�14416106601�011600� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Cebuano translation for apport # Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2018. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2018-08-22 11:00+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Cebuano <ceb@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Ipakita ang mga detalye" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Padayon" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binary data)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Ipadala" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakete: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Itago ang mga Detalye" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Palihug pamili (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Kanselahon" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Sayup: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Humana" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "wala" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Pili-anan:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ���������������������������������������������������������������������������������������apport-2.20.11/po/cs.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000137236�14416106601�011450� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Czech translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: František Zatloukal <Zatloukal.Frantisek@gmail.com>\n" "Language-Team: Czech <cs@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: cs\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Zrušit" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Hlášení o chybě" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Omlouváme se, nastala vnitřní chyba.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Pokud problémy neustanou, zkuste restartovat počítač." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Zaslat hlášení o chybě. Pomůžete tím vyřešení tohoto problému" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorovat budoucí problémy této verze programu" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Zobrazit podrobnosti" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Prozkoumat místně" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Ponechat uzavřené" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Pokračovat" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Shromažďování informací o problému</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Shromažďují se informace, které mohou pomoci vývojářům opravit vámi " "nahlášený problém." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Odesílání informací o problému" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Odesílání informací o problému</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Sesbírané informace se odesílají do systému pro sledování chyb. To může " "trvat i několik minut." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Soubor apport crash" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binární data)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Omlouváme se, aplikace %s byla neočekávaně ukončena." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Omlouváme se, %s byl neočekávaně ukončen." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Omlouváme se, %s zaznamenal vnitřní chybu." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Odeslat hlášení o problému vývojářům?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Odeslat" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Násilně ukončeno" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Restartovat" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Aplikace %s neodpovídá." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Program %s neodpovídá." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Balík: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Omlouváme se, při instalaci softwaru nastala chyba." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "V aplikaci %s došlo k chybě." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Aplikace %s byla neočekávaně ukončena." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorovat budoucí problémy tohoto typu" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Skrýt podrobnosti" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Použití: %s <hlášení> <cílový adresář>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Cílový adresář existuje a není prázdný." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Uživatelské jméno:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Heslo:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Shromažďování informací o problému" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Shromažďování informací o problému" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Shromážděné informace mohou být zaslány vývojářům za účelem případného " "vylepšení aplikace. Odesílání může trvat několik minut." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Odesílání informací o problému" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Získat informace o systému" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Pro získání systémových informací potřebných k nahlášení tohoto problému je " "vyžadováno ověření" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Zpráva o problému se systémem" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Zadejte prosím své heslo, aby mohl být problém systémového programu oznámen." #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Nahlásit problém..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Oznámit problém vývojářům" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Více informací je na manuálové stránce" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "specifikujte jméno log souboru valgrindu" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "použít dříve vytvořený adresář sandbox (SDIR) nebo, pokud neexistuje, jej " "vytvořit" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "nevytvářet nebo znovu nepoužívat adresář sandbox pro dodatečné debugovací " "symboly, ale pouze pro instalované debugovací symboly." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "použít dříve vytvořený cache adresář (CDIR) nebo, pokud neexistuje, jej " "vytvořit" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "hlásit postup stahování/instalace během instalování balíku do sandboxu" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "spustitelný soubor, který běží pod testem paměti valgrind na únik paměti" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "Nainstalovat do sandboxu extra balík (může být vybráno vícekrát)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Chyba: %soubor není spustitelný. Ukončuji proces." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Váš systém může být nyní nestabilní a bude jej možná nutné restartovat." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Nepřidávejte do hlášení další sledování, přesměrujte je na standardní výstup." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Spusťte interaktivní gdb úlohu s hlášením core dump (-případně ignorujte; " "nepřepisujte report)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Zapsat upravené hlášení do daného souboru místo změny původního hlášení" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Odstraňte core dump z hlášení potom, co bude výstupní hlášení znovu " "vygenerováno" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Potlačit zprávy CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Potlačit zprávy ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Potlačit zprávy ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Obnovit zprávy o informacích o balíčcích" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Vytvořit dočasný sandbox a stáhnout/instalovat tam potřebné balíčky a " "symboly pro ladění; bez této volby bude předpokládat, že potřebné balíčky a " "symboly pro ladění jsou již v systému instalovány. Argument odkazuje na " "kořenový adresář s konfigurací balíkovacího systému; pokud uvedete " "\"system\", tak budou použity systémové konfigurační soubory, ale pak bude " "možné retrasovat havárie pouze u právě spuštěné verze." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "Hlásit postup stahování/instalace při instalaci balíčků do sandboxu" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Pro dávkové zpracování vložit časové razítko před zpávu do logu" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "Vytvořit a použít repozitáře třetích stran pocházející z hlášení" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Kešovací adresář pro stažené balíčky do sandboxu" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Adresář pro rozbalené soubory. V budoucnu by tam měly být k dispozici " "všechny stažené a rozbalené balíky." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Cesta k souboru s pověřením k databázi havárií. Při definování ID havárie je " "použit k nahrání retrasovaných trasování zásobníku (pouze pokud není použit " "parametr -g, -o nebo -s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Zobrazit retasované trasování zásobníku a poptat na potvrzení před jejich " "odesláním do databáze havárií." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "Cesta k duplikátu databáze sqlite (výchozí: žádná kontrola duplicit)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Nelze užít -C bez -S. Zastavuji proces." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Souhlasíte s odesláním těchto jako příloh? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Tento balík zřejmě není nainstalován správně" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Toto není oficiální %s balík. Prosíme odstraňte všechny balíky třetích stran " "a zkuste to znovu." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Máte nainstalovány zastaralé verze některých balíků. Prosím aktualizujte " "následující balíky a zkontrolujte, zda se problém vyskytuje i nadále.\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "neznámý program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Omlouváme se, program \"%s\" byl neočekávaně uzavřen" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problém v %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Váš počítač nemá dostatek volné paměti pro automatickou analýzu problému a " "odeslání hlášení vývojářům." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Neplatné hlášení o problému" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Nemáte oprávnění k přístupu k tomuto hlášení problému." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Chyba" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Pro zpracování tohoto hlášení není na disku dost místa." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nebyl specifikován žádný balík" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Musíte určit, o který balík nebo PID se jedná. Pro více informací použijte " "přepínač --help." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Přístup odepřen" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Nejste vlastníkem vybraného procesu. Prosím, spusťte tuto aplikaci jako " "vlastník onoho procesu nebo jako root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Neplatný PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Zadané ID procesu neodpovídá žádnému programu." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Skript %s neurčuje problematický balík" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Balík %s neexistuje" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Nelze vytvořit hlášení" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Probíhá aktualizace chybového hlášení" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Tento problém jste buď nenahlásili a ani nejste přihlášeni k jeho odběru, " "nebo je toto hlášení problém duplicitní nebo již uzavřené.\n" "\n" "Vytvořte prosím nové hlášení pomocí \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Nejste ten, kdo nahlásil tento problém. Je mnohem jednodušší označit chybu " "jako duplikát jiné, než přesouvat komentáře a přílohy k nově hlášené chybě.\n" "\n" "V návaznosti doporučujeme vyplnit nové hlášení o chybě pomocí \"apport-bug\" " "a u stávajícího hlášení o chybě přidat poznámku o Vašem novém hlášení o " "chybě.\n" "\n" "Opravdu chcete pokračovat?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Nebyly shromážděny žádné další informace." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Jaký druh problému si přejete nahlásit?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Neznámý příznak" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Příznak \"%s\" je neznámý." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "Po uzavření této zprávy klikněte na okno s nahlášením problému." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop selhal při rozeznávávání ID procesu okna" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <číslo hlášení>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Upřesněte název balíku." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Přidejte do hlášení další tagy - může jich být více." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [přepínače] [příznak|pid|balík|cesta k programu|soubor .apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Spustit režim popisování chyby. Vyžaduje přepínač --package a volitelně --" "pid, nebo pouze --pid. Pokud není zadán ani jeden, zobrazí se seznam známých " "příznaků. (Použito, pokud je zadán jediný argument.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Kliknutím vyberte okno pro vytvoření hlášení o chybě." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Spustit režim aktualizace chyb. Může mít volbu --packages" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Podat hlášení o chybě o příznaku. (Použito, pokud je zadán název příznaku " "jako jediný argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Určit název balíku v režimu --file-bug. Toto je volitelné, pokud je určeno --" "pid. (Použito, pokud je zadán název balíku jako jediný argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Upřesněte běžící program v režimu --file-bug mode. S tímto upřesněním bude " "hlášení obsahovat více informací. (Je-li číslo procesu uvedeno jako jediný " "argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Poskytnuté pid je zamrzlá aplikace." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Podat hlášení o havárii ze zadaného souboru .apport nebo .crash místo " "některých nevyřízených z %s. (Použito, pokud je zadán soubor jako jediný " "argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Uložte hlášení do souboru namísto přímého oznámení. Tento soubor může být " "nahlášen později nebo z jiného počítače." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Vypsat číslo verze Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "Tímto spustíte apport-retrace v terminálovém okně." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Spustit gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Spustit gdb bez stahování debugovacích symbolů" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Aktualizovat %s pomocí úplného symbolického trasování zásobníku" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Toto hlášení o problému se týká programu, který již není nainstalován." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "Problém byl zaznamenán v programu %s, který byl od pádu změněn." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Toto hlášení o problému je poškozené a nemůže být zpracováno." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Toto hlášení náleží k balíku, který není nainstalován." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Při zpracování chybového hlášení došlo k chybě:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Nelze určit název balíku nebo zdrojového balíku." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Nelze spustit webový prohlížeč" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Nelze spustit webový prohlížeč a otevřít %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Zadejte prosím informace o svém účtu k systému pro sledování chyb %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problém se sítí" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Nelze se připojit k databází havárií, prosím zkontrolujte své internetové " "připojení." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Vyčerpání paměti" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Váš systém nemá dostatek paměti pro zpracování tohoto hlášení o havárii." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Problém nemůže být nahlášen:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problém je již znám" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Tento problém byl již nahlášen v hlášení zobrazeném ve vašem webovém " "prohlížeči. Prosím zkontrolujte, zda můžete přidat další informace, které by " "mohly být vývojářům nápomocné." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Tato chyba byla vývojářům již ohlášena. Děkujeme!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Toto se stalo v průběhu minulého uspání do paměti a zabránilo systému v " "probuzení." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Toto se stalo v průběhu minulého uspání na disk a zabránilo systému v " "probuzení." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Proces probouzení byl porušen téměř u konce a vypadá tedy jako řádně " "ukončený." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Pro pokračování stiskněte libovolnou klávesu..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Co chcete udělat? Máte tyto možnosti:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Prosím vyberte (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bajtů)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Po odeslání hlášení o problému vyplňte prosím formulář v nově\n" "otevřeném okně prohlížeče." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Odeslat hlášení (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Prozkoumat místně" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "Zobrazi&t hlášení" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Ponechat soubor s hlášením pro pozdější odeslání nebo kopírování někam jinam" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Zrušit a &ignorovat budoucí havárie této verze programu" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Zrušit" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Soubor s hlášením o problému:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Potvrdit" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Chyba: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Sesbírané informace mohou být odeslány vývojářům za účelem zlepšení\n" "aplikace. To může trvat i několik minut." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Sesbírané informace se odesílají do systému pro sledování chyb.\n" "To může trvat i několik minut." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Hotovo" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "nic" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Vybráno: %s. Více možností:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Volby" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Cesta k souboru (Enter pro zrušení):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Soubor neexistuje." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Toto je adresář." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Pro pokračování musíte navštívit následující adresu:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Nyní můžete spustit prohlížeč nebo zkopírovat tuto adresu do prohlížeče nebo " "jiného počítače." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Spustit prohlížeč nyní" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Žádná nevyřízená hlášení o haváriích. Pro více informací použijte přepínač --" "help." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Kompletní hlášení (doporučeno; %s)" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Pokud jste nedělali nic soukromého (zadávání hesla nebo jiné osobní " #~ "informace), můžete pomoci vylepšit aplikaci zasláním hlášení o problému." #~ msgid "Application problem" #~ msgstr "Problém aplikace" #~ msgid "Restart _Program" #~ msgstr "Spustit _program znovu" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Omlouváme se, avšak balík \"%s\" se " #~ "nepodařilo nainstalovat nebo aktualizovat.</span>" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Stručné hlášení (pomalé internetové připojení; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorovat budoucí havárie této verze programu" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Tímto odstraníte některé rozsáhlé položky z hlášení. Jsou sice užitečné pro " #~ "vývojáře při hledání problému, ale mohou být příliš objemné, pokud máte " #~ "pomalé internetové připojení." #~ msgid "_Report Problem..." #~ msgstr "_Nahlásit problém..." #~ msgid "Kernel problem" #~ msgstr "Problém jádra" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Můžete pomoci vývojářům spravit tento balík zasláním hlášení o problému." #~ msgid "Content of the report" #~ msgstr "Obsah hlášení" #~ msgid "Package problem" #~ msgstr "Problém balíku" #~ msgid "&Report Problem..." #~ msgstr "&Nahlásit problém..." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "Aplikace \"%s\" se neočekávaně ukončila dne %s v %s." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Ve vašem systému došlo k vážnému problému v jádře." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Pokud jste nedělali nic soukromého (zadávání hesla nebo\n" #~ "jiné osobní informace), můžete pomoci vylepšit aplikaci\n" #~ "zasláním hlášení o problému." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Můžete pomoci vývojářům opravit problém tím, že jej nahlásíte." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Odeslat úplné hlášení (doporučeno; %s)" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Nepodařilo se nainstalovat nebo aktualizovat balík \"%s\"." #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Odeslat hlášení o problému vývojářům?</b></big>\n" #~ "\n" #~ "Po odeslání hlášení o problému vyplňte prosím formulář v nově otevřeném okně " #~ "prohlížeče." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Odeslat &stručné hlášení (pomalé internetové připojení; %s)" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Toto není původní balík pro %s" #~ msgid "_Send Report" #~ msgstr "_Odeslat hlášení" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "nesprávný počet argumentů; pro stručnou nápovědu použijte přepínač --help" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Tato situace nastala v průběhu předchozího uspání do paměti a zabránila " #~ "správnému probuzení." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Tato situace nastala v průběhu předchozího uspání na disk a zabránila " #~ "správnému probuzení." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Omlouváme se, aplikace %s byla neočekávaně ukončena." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [volby] <hlášení problému appoer | crash ID>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "potřebujete provést lokální operaci (-s, -g, -o) nebo poskytnout soubor s " #~ "oprávněním (--auth); pro stručnou nápovědu použijte --help" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Váš systém se nyní může stát nestabilním a možná bude vyžadovat restart." ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/cv.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077555�14416106601�011462� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Chuvash translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: Ali Savatar <Unknown>\n" "Language-Team: Chuvash <cv@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: cv\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Jănăš" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "\"PID\" tĕrĕs mar" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Tetel jănăšĕ" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Părahăşla" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Jănăš: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Hatĕr" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "şuk" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Fajl tupănmarĕ" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ���������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/cy.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077426�14416106601�011462� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Welsh translation for apport # Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2018. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2018-03-04 11:30+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Welsh <cy@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/da.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000134030�14416106601�011414� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Danish translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # Mads Bille Lundby <lundbymads@gmail.com>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Aputsiak Niels Janussen <aj@isit.gl>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: da\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Annullér" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "O.k." #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Nedbrudsrapport" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Beklager, men der opstod en intern fejl.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Hvis du bemærker yderligere problemer, så prøv at genstarte computeren." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Send en fejlrapport for at hjælpe med at fikse dette problem" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorér fremtidige problemer for denne programversion" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Vis detaljer" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Undersøg lokalt" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Lad være lukket" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Fortsæt" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Indsamler probleminformation</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Der indsamles informationer, som kan hjælpe udviklerne med at løse det " "problem, du rapporterer." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Sender probleminformation" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Sender probleminformation</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Den indsamlede information sendes til fejlregistreringssystemet. Dette kan " "tage et par minutter." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport-nedbrudsfil" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binære data)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Beklager, men programmet %s er stoppet uventet." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Beklager, men %s lukkede ned uventet." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Beklager, men der opstod en intern fejl i %s." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Send problemrapport til udviklerne?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Send" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Gennemtving lukning" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Genstart" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Programmet %s er holdt op med at svare." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Programmet \"%s\" er holdt op med at svare." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakke: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Beklager, men der opstod et problem under installation af software." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Programmet %s er stødt på en intern fejl." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Programmet %s lukkede ned uventet." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorér fremtidige problemer af denne type" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Skjul detaljer" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Brug: %s <rapport> <målkatalog>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Destinationskatalog eksisterer og er ikke tomt." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Brugernavn:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Adgangskode:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Indsamler information om problemet" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Indsamler information om problem" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Den indsamlede information kan sendes til udviklerne for at forbedre " "programmet. Dette kan tage nogle få minutter." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Afsender probleminformation" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Indsaml systemoplysninger" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Der kræves godkendelse for at indsamle systemoplysninger til denne " "fejlrapport" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Rapporter om systemfejl" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Angiv venligst din adgangskode for at se rapporter over problemer med " "systemprogrammer" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Rapportér et problem..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Rapportér en funktionsfejl til udviklerne" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Se manualsiden for detaljer." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "angiv navnet på logfilen som blev fremstillet af valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "genbrug en tidligere oprettet sandkassemappe (SDIR) eller, hvis denne ikke " "findes, opret den" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "undlad at oprette eller genbruge en sandkassemappe for yderligere " "fejlsøgningssymboler, og gør kun brug af installerede fejlsøgningssymboler." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "genbrug en tidligere oprettet cachemappe (CDIR) eller, hvis denne ikke " "findes, opret den" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "rapportér hentning/installationsforløb, når der installeres pakker i " "sandkassen" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "den eksekvérbare fil, der køres under memcheck, valgrinds værktøj til " "hukommelsestjek for registrering af læk i hukommelsen" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "Installér en ekstra pakke til sandkassen (kan angives flere gange)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Fejl: %s er ikke en eksekvérbar fil. Afbryder." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Dit system kan blive ustabilt nu og kan få brug for at blive genstartet." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Føj ikke nye spor ind i rapporten, men skriv dem til stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Start en interaktiv gdb-session med rapportens kernedump (-o ignoreret; " "genskriver ikke rapport)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Skriv tilpasset rapport til en angivet fil i stedet for at ændre den " "oprindelige rapport" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Fjern kernedump fra rapporten efter genoprettelsen af stakspor" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Tilsidesæt rapports kernefil (CoreFile)" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Tilsidesæt rapports ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Tilsidesæt rapports ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Genopbyg rapports pakkeinformation" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Foranstil tidsstempler i logbeskeder til batch-operation" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Opret og benyt tredjepartsarkiver fra kilder som er angivet i rapporter" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Mellemlagermappe for pakker som er hentet til sandkassen" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Katalog for udpakkede pakker. Fremtidige kørsler vil antage at enhver pakke " "som allerede er hentet, også udpakkes til denne sandkasse." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Sti til en fil med godkendelsesinformation for nedbrudsdatabasen. Dette " "bruges, når et nedbruds-id angives til at sende de gensporerede stakspor " "(kun hvis hverken -g, -o, eller -s er angivet)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Vis gensporerede stakspor og spørg om bekræftelse før de afsendes til " "nedbrudsdatabasen." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Sti til sqlite-duplikatdatabasen (standard: ingen duplikeret kontrol)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Du kan ikke benytte -C uden -S. Afbryder." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "O.k. at sende disse som bilag [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Denne pakke synes ikke at være korrekt installeret" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Dette er ikke en officiel %s-pakke. Fjern venligst tredjepartspakken, hvis " "der er en, og prøv igen." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Du har nogle forældede pakkeversioner installeret. Opgrader venligst de " "følgende pakker og se om problemet stadig opstår:\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "ukendt program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Undskyld, programmet \"%s\" lukkede uventet" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problem i %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Din computer har ikke nok ledig hukommelse til en automatisk analyse af " "problemet og afsendelse af en rapport til udviklerne." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Ugyldig problemrapport" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Du har ikke tilladelse til at tilgå denne problemrapport." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Fejl" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Der er ikke nok diskplads til rådighed til at behandle denne rapport." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Ingen pakke angivet" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Du skal angive en pakke eller en PID. Se --help for mere information." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Tilladelse nægtet" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Den angivne proces tilhører ikke dig. Kør venligst dette program som ejer af " "processen eller som administrator." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Ugyldigt PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Det angivne proces-ID tilhører ikke et program." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Symptomskript %s udpegede ikke en berørt pakke" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Pakke %s eksisterer ikke" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Kan ikke oprette rapport" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Opdaterer problemrapport" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Ingen yderligere oplysninger indsamlet." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Hvilken slags problem ønsker du at rapportere?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Ukendt symptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Symptomet \"%s\" er ikke kendt." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Tryk venligst på et programvindue - efter du lukker denne besked - for at " "rapportere et problem med det." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop kunne ikke bestemme proces-id for vinduet" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <rapportnummer>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Angiv pakkenavn." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Tilføj et ekstra mærke til rapporten. Kan gives flere gange." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "%prog [tilvalg] [symptom|pid|pakke|programsti|.apport/.crash-fil]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Start i fejlrapporteringstilstand. Kræver --pakke og valgfrit et --pid, " "eller blot et --pid. Fremvis en liste over kendte symptomer, hvis ingen af " "delene er angivet. (Underforstået hvis et enkelt argument er angivet.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Klik på et vindue som et mål for indsendelse af en fejlrapport." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Start i fejlopdateringstilstand. Kan have et valgfrit --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Opret en fejlrapport om et symptom. (Underforstået hvis symptomnavn er " "angivet som eneste argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Angiv pakkenavn i --file-bug-tilstand. Dette er valgfrit hvis et --pid er " "angivet. (Underforstået hvis pakkenavn er angivet som eneste argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Vælg et kørende program i tilstanden --file-bug. Hvis dette er givet, vil " "fejlrapporten indeholde mere information. (Underforstået, hvis pid gives som " "eneste argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Det angivne pid er et program som hænger." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Rapportér nedbruddet fra en given .apport- eller .crash-fil i stedet for de " "igangværende filer i %s. (Underforstået hvis fil er angivet som eneste " "argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Gem, under fejludfyldelsestilstanden, den indsamlede information i en fil i " "stedet for at rapportere den. Denne fil kan så rapporteres fra en anden " "maskine på et senere tidspunkt." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Skriv Apport-versionnummer." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Dette vil køre apport-retrace i et terminalvindue for at undersøge " "nedbruddet." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Kør gdb-session" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Kør gdb-session uden at hente fejlsøgningssymboler" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Opdatér %s med fuldt symbolsk stakspor" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Problemrapporten vedrører et program, som ikke længere er installeret." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Problemet opstod med programmet %s, som har ændret sig siden sidste nedbrud." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Denne problemrapport er beskadiget og kan ikke behandles." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Rapporten tilhører en pakke, som ikke er installeret." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Der opstod en fejl ved forsøg på at behandle denne problemrapport:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Kunne ikke bestemme pakken eller kildepakkenavn." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Kan ikke starte internetbrowser" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Kan ikke starte internetbrowser for at åbne %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Indtast venligst dine kontoinformationer til %s-fejlregistreringssystemet" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Netværksproblem" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Kan ikke forbinde til nedbrudsdatabase. Kontrollér venligst din " "internetforbindelse." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Overbelastning af hukommelse" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Dit system har ikke hukommelse nok til at behandle denne nedbrudsrapport." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Problemet kan ikke rapporteres:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problemet er allerede kendt" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Dette problem er allerede blevet rapporteret i fejlrapporten, som er vist i " "din internetbrowser. Kontrollér venligst om du kan tilføje yderligere " "information, som kan være til hjælp for udviklerne." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" "Dette problem er allerede blevet rapporteret til udviklerne. Mange tak!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Dette skete under en tidligere hviletilstand, og forhindrede systemet i at " "vågne op korrekt." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Dette skete under en tidligere dvaletilstand, og forhindrede systemet i at " "vågne op korrekt." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Opvågningsprocessen gik i stå meget tæt på slutningen, og den har set ud, " "som om den er blevet fuldført på normal vis." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Tryk på en tast for at fortsætte..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Hvad ønsker du at foretage dig? Dine valg er:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Vælg venligst (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Efter problemrapporten er afsendt, bedes du udfylde formularen i den\n" "internetbrowser, som åbner automatisk." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Send rapport (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Undersøg lokalt" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Læs rapport" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Behold rapportfil til senere afsendelse eller kopiér den til et andet sted" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Annullér og &ignorér fremtidige nedbrud af denne programversion" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Annullér" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Problemrapportfil:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Bekræft" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Fejl: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "De indsamlede informationer kan sendes til udviklerne med henblik på\n" " at forbedre programmet. Dette kan tage nogle få minutter." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "De indsamlede informationer sendes til fejlregistreringssystemet.\n" "Dette kan tage et par minutter." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Færdig" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "intet" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Valgt: %s. Flere valg:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Valg:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Sti til fil (Enter for at annullere):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Fil eksisterer ikke." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Dette er et katalog." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Du skal beøge følgende internetadresse for at fortsætte:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Du kan åbne en browser nu eller kopiere adressen til en browser på en anden " "computer." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Åbn en browser nu" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "Ingen ventende nedbrudsrapporter. Prøv --help for mere information." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Du kan hjælpe udviklerne med at rette dette problem ved at rapportere det." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Undskyld, pakken \"%s\" fejlede under " #~ "installation eller opgradering.</span>" #~ msgid "Content of the report" #~ msgstr "Indhold af rapporten" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Hele rapporten (anbefalet; %s)" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Du kan hjælpe udviklerne med at ordne pakken ved at rapportere problemet." #~ msgid "_Report Problem..." #~ msgstr "_Rapportér problem..." #~ msgid "_Send Report" #~ msgstr "_Send rapport" #~ msgid "&Report Problem..." #~ msgstr "&Rapportér problem..." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Hvis ikke du foretog dig noget fortroligt (indtastning af adgangskode eller " #~ "anden\n" #~ "privat information), kan du hjælpe udviklerne med at forbedre programmet ved " #~ "at\n" #~ "rapportere problemet." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s lukkede uventet på %s ved %s." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Send komplet rapport (anbefalet; %s)" #~ msgid "Application problem" #~ msgstr "Programproblem" #~ msgid "Package problem" #~ msgstr "Pakkeproblem" #~ msgid "Restart _Program" #~ msgstr "Genstart _program" #~ msgid "Kernel problem" #~ msgstr "Kerneproblem" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorér fremtidige nedbrud af denne programversion" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Pakken \"%s\" fejlede under installation eller opgradering." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Send &reduceret rapport (langsom Internetforbindelse; %s)" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Dette er ikke en original %s-pakke" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Dit system stødte på et alvorligt kerneproblem." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Dette skete under en tidligere hviletilstand og forhindrede den i at vågne " #~ "korrekt." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Dette skete under en tidligere dvaletilstand og forhindrede den i at vågne " #~ "korrekt." #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Send problemrapport til udviklerne?</b></big>\n" #~ "\n" #~ "Efter problemrapporten er afsendt, bedes du udfylde formularen i den\n" #~ "internetbrowser, som åbner automatisk." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Hvis du ikke var i gang med noget fortroligt (indtastning af adgangskode " #~ "eller anden privat information), kan du hjælpe med at forbedre programmet " #~ "ved at rapportere problemet." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Begrænset rapport (langsom internetforbindelse; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Dette vil fjerne nogle store elementer fra rapporten. Disse er meget nyttige " #~ "for udviklerne til at fejlsøge problemet, men kan være for store for dig at " #~ "afsende, hvis du har en langsom internetforbindelse." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [tilvalg] <apport-problemrapport | nedbruds-id>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "forkert antal argumenter; brug --help for en kortfattet hjælp" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "du skal enten fortage en lokal operation (-s, -g, -o) eller angive en " #~ "godkendelsesfil (--auth); se --help for en kortfattet hjælp" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Beklager, men programmet %s lukkede ned uventet." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Dit system vil muligvis blive ustabilt nu, og det kan blive nødvendigt med " #~ "en genstart." ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/de.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000144515�14416106601�011431� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2007 Martin Pitt # This file is distributed under the same license as the apport package. # Martin Pitt <martin.pitt@ubuntu.com> # msgid "" msgstr "" "Project-Id-Version: apport 0.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-09-10 15:08+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: German <de@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: de\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Abbrechen" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Absturzbericht" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" "<big><b>Entschuldigung, es ist ein interner Fehler aufgetreten.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Falls Sie weitere Probleme bemerken, versuchen Sie Ihren Rechner neu zu " "starten." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" "Einen Fehlerbericht senden, um beim Beheben dieses Problems zu helfen" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Zukünftige Abstürze dieser Programmversion ignorieren" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Einzelheiten anzeigen" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Lokal analysieren" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Geschlossen lassen" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Fortfahren" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Probleminformationen werden gesammelt</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Es werden Informationen gesammelt, die den Entwicklern beim Lösen des " "Problems helfen können." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Probleminformationen werden übermittelt" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Probleminformationen werden übermittelt</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Die gesammelten Informationen werden zum Fehlerverfolgungssystem gesendet. " "Das kann einige Minuten dauern." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport-Absturzberichtsdatei" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binäre Daten)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Entschuldigung, die Anwendung »%s« wurde unerwartet beendet." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Entschuldigung, »%s« wurde unerwartet beendet." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Entschuldigung, »%s« hat einen internen Fehler festgestellt." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Problembericht an die Entwickler senden?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Senden" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Schließen erzwungen" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Neu starten" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Die Anwendung %s reagiert nicht mehr." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Das Programm »%s« reagiert nicht mehr." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paket: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" "Entschuldigung, beim Installieren der Anwendung ist ein Problem aufgetreten." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Die Anwendung %s hat einen internen Fehler erlitten." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Entschuldigung, %s wurde unerwartet beendet." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Zukünftige Abstürze dieser Art ignorieren" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Einzelheiten ausblenden" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Verwendung: %s <Bericht> <Zielordner>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Zielordner existiert und ist nicht leer." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Benutzername:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Passwort:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Probleminformationen werden gesammelt" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Probleminformationen werden gesammelt" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Die gesammelten Informationen können an die Entwickler gesendet werden um " "die Anwendung zu verbessern. Das kann einige Minuten dauern." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Probleminformationen werden übermittelt" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Systeminformationen werden gesammelt" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Legitimation ist erforerlich, um Systeminformationen für diesen " "Problembericht zu sammeln." #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Systemproblemberichte" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Bitte geben Sie Ihr Passwort ein, um zu den Problemberichten von " "Systemprogrammen zu gelangen" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Einen Fehler melden …" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Den Entwicklern eine Fehlfunktion melden" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Weitere Informationen finden Sie in der Handbuchseite." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" "Den Namen der Protokolldatei festlegen, die von valgrind erstellt wurde" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "Einen zuvor erzeugten Sandbox-Ordner (SDIR) verwenden oder einen neuen " "erzeugen, falls er noch nicht existiert" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "Keinen Sandbox-Ordner erstellen oder wiederverwenden für zusätzliche " "Fehlerdiagnosesymbole, sondern auf installierte Fehlerdiagnosesymbole " "verlassen." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "Einen zuvor erzeugten Zwischenspeicherordner (CDIR) verwenden, oder einen " "neuen erstellen, falls er noch nicht existiert" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "Übertragungs-/Installationsfortschritt anzeigen, wenn Pakete in einer " "Sandbox installiert werden" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "Die ausführbare Datei, die unter valgrinds Speicherprüfungswerkzeug zur " "Speicherleckerkennung ausgeführt wird" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Ein zusätzliches Paket in die Sandbox installieren (kann mehrfach angegeben " "werden)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Fehler: %s ist keine ausführbare Datei. Abbruch." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Ihr System könnte nun instabil werden, und muss eventuell neu gestartet " "werden." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Die neuen Stapelspeicher nicht in die Berichtsdatei, sondern auf die " "Standardausgabe schreiben." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Eine interaktive GDB-Sitzung mit dem Kernspeicherauszug des Berichtes " "starten (-o wird ignoriert; Bericht wird nicht neu geschrieben)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Den aktualisierten Bericht in die angegebene Datei schreiben anstatt den " "Originalbericht zu ändern" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Den Kernspeicherauszug vom Bericht entfernen, nachdem der Stapelspeicher neu " "generiert wurde." #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "CoreFile des Berichts überschreiben" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "ExecutablePath des Berichts überschreiben" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "ProcMaps des Berichts überschreiben" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Die Paketinformation des Berichts erneuern" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Erstellt eine temporäre Sandbox, lädt die benötigten Pakete und Symbole zur " "Fehlerdiagnose herunter und installiert diese in die Sandbox; ohne diese " "Option wird davon ausgegangen, dass die benötigten Pakete und Symbole zur " "Fehlerdiagnose bereits im System installiert sind.Der Parameter verweist auf " "das Stammordner des Paketsystemkonfigurationsordnerses; wenn Sie »system« " "angeben werden die Systemkonfigurationsdateien verwendet, allerdings sind " "Sie dann nur in der Lage Abstürze in der aktuell laufenden Veröffentlichung " "zurück zu verfolgen." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Übertragungs-/Installationsfortschritt anzeigen, wenn Pakete in einer " "Sandbox installiert werden" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Protokolleinträgen einen Zeitstempel voranstellen, für Stapelverarbeitung" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Verwende Paketquellen von Drittanbietern die in Berichten angegeben sind" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" "Ordner zum Zwischenspeichern von Paketen, die in der Sandbox heruntergeladen " "wurden" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Verzeichnis für entpackte Pakete. Ab dem nächsten Start wird davon " "ausgegangen, dass alle bereits heruntergeladenen Pakete in diese Sandbox " "entpackt worden sind." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Pfad zu einer Datei mit den Legitimierungsinformationen der " "Absturzdatenbank. Er wird verwendet, wenn eine Absturzkennung zum Hochladen " "der Absturzdaten angegeben wird (nur wenn weder »-g«, »-o« oder »-s« " "angegeben werden)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Zurückverfolgte Stapelspeicher anzeigen und auf Bestätigung warten, bevor " "sie zur Fehlerdatenbank gesendet werden." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Pfad zur sqlite-Datenbank mit den Duplikaten (Voreinstellung: Keine Prüfung " "auf Duplikate)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Sie dürfen -C nicht ohne -S verwenden. Abbruch." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Dürfen diese als Anlage mitgeschickt werden? [y = Ja / n = Nein]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Dieses Paket scheint nicht richtig installiert zu sein" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Das ist kein offizielles %s-Paket. Bitte entfernen Sie alle Pakete von " "Drittanbietern und wiederholen Sie den Vorgang." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Sie haben einige veraltete Paketversionen installiert. Bitte aktualisieren " "Sie die folgenen Pakete und prüfen Sie, ob das Problem danach noch " "auftritt:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "unbekanntes Programm" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Entschuldigung, das Programm »%s« wurde unerwartet beendet" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problem in %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Ihr System besitzt nicht genug Speicher, um den Absturzbericht zu " "verarbeiten und einen Bericht an die Entwickler zu senden." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Ungültiger Problembericht" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Sie haben keine Berechtigung für diesen Problembericht." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Fehler" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Ihr System besitzt nicht genug Festplattenplatz, um den Absturzbericht zu " "verarbeiten." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Kein Paket angegeben." #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Sie müssen ein Paketnamen oder eine PID angeben. Versuchen Sie --help für " "weitere Informationen." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Zugriff verweigert" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Der angegebene Prozess gehört nicht Ihnen. Bitte starten Sie dieses Programm " "als den Prozesseigentümer oder als root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Ungültige Prozesskennung" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Die angegebene Prozesskennung gehört zu keinem Programm." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Symptom-Skript %s konnte kein betroffenes Paket finden" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Paket %s existiert nicht." #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Bericht kann nicht erstellt werden" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Problembericht wird aktualisiert" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Sie haben den Problembericht weder erstellt noch abonniert oder der " "Problembericht ist bereits geschlossen oder er wurde als Duplikat " "gekennzeichnet.\n" "\n" "Bitte erstellen Sie mit »apport-bug« einen neuen Problembericht." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Sie haben diesen Problembericht nicht erstellt. Es ist viel einfacher, ein " "Problem als Duplikat eines anderen Problems zu kennzeichnen, als Ihre " "Kommentare und Anhänge zum neuen Problem zu verschieben.\n" "\n" "Folglich wird empfohlen, dass Sie mit »apport-bug« einen neuen " "Problembericht erstellen und in diesen Fehlerbericht einen Kommentar zu " "Ihrem erstellten Fehlerbericht hinzufügen.\n" "\n" "Möchten Sie wirklich fortfahren?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Keine zusätzlichen Informationen gesammelt." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Welche Art von Problem möchten Sie melden?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Unbekanntes Symptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Das Symptom »%s« ist nicht bekannt." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Nachdem Sie diese Meldung geschlossen haben, klicken Sie bitte auf das " "Fenster der Anwendung, zu der Sie ein Problem melden möchten." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "Xprop konnte die Prozesskennung des Fensters nicht ermitteln" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <Berichtnummer>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Paketnamen angeben." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Eine zusätzliches Schlagwort zu dem Bericht hinzufügen. Kann mehrfach " "angegeben werden." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [Optionen] [Fehler|PID|Paket|Programmpfad|.apport/.crash-Datei]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Im Fehler-Melde-Modus starten. Benötigt --package und optional --pid oder " "nur --pid. Wenn keines angegeben wird, eine Liste bekannter Symptome " "anzeigen. (Implizit, wenn nur ein einzelnes Argument angegeben wird.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" "Klicken Sie bitte auf das Fenster der Anwendung, die im Bericht vorkommen " "soll." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Im Fehleraktualisierungsmodus starten. Option --package kann zusätzlich " "angegeben werden." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Fehler als einen Bericht über ein Symptom melden. (Implizit, wenn der " "Symptom-Name als einziges Argument angegeben wird.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Einen Paketnamen im Fehlerberichtsmodus (--file-bug) angeben. Das ist " "optional, wenn --pid angegeben wird. (Implizit, wenn der Paketname als " "einziges Argument angegeben wurde.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Geben Sie ein laufendes Programm im --file-bug-Modus an. Dadurch wird der " "Fehlerbericht mehr Informationen enthalten. (Standard, wenn das einzige " "Argument eine PID ist.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Die angegebene pid ist eine nicht reagierende Anwendung." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Fehlerbericht aus einer angegebenen .apport- oder .crash-Datei erstellen, " "anstatt aus einer der in %s wartenden. (Implizit, wenn ein Dateiname als " "einziges Argument angegeben wurde.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Speichern Sie im Fehlerberichtmodus die gesammelten Informationen in einer " "Datei, anstatt sie direkt zu melden. Diese Datei kann später von einem " "anderen Rechner aus gesendet werden, um den Fehler zu melden." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Die Versionsnummer von Apport ausgeben." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Hierdurch wird apport-retrace in einem Terminal ausgeführt, um die " "Absturzursache zu untersuchen." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Eine gdb-Sitzung ausführen" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" "Eine gdb-Sitzung ausführen ohne Fehlerdiagnosesymbole herunterzuladen" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "%s mit vollständig symbolischen Stapelspeicher aktualisieren" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Der Bericht gehört zu einem Programm welches nicht mehr installiert ist." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Das Problem trat in der Anwendung %s auf, die seit dem Absturz verändert " "wurde." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" "Dieser Problembericht ist beschädigt und kann nicht verarbeitet werden." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Der Bericht gehört zu einem nicht installierten Paket." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "Bei der Verarbeitung dieses Fehlerberichts ist ein Problem aufgetreten:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Paket- oder Quellpaketname konnten nicht bestimmt werden." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Konnte Web-Browser nicht starten" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Konnte Web-Browser nicht starten um %s zu öffnen." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Bitte geben Sie Ihre Kontodaten für das %s-Fehlerverwaltungssystem ein" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Netzwerkproblem" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Es konnte keine Verbindung zur Fehlerdatenbank aufgebaut werden. Bitte " "prüfen Sie Ihre Internetverbindung." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Kein Speicher mehr verfügbar" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Ihr System besitzt nicht genug Speicher, um den Absturzbericht zu " "verarbeiten." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Das Problem kann nicht gemeldet werden:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Dieses Problem ist bereits bekannt." #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Dieses Problem wurde bereits in dem Problembericht, welcher im Webbrowser " "angezeigt wird, gemeldet. Bitte überprüfen Sie, ob Sie noch irgendwelche " "weiteren Informationen, welche für die Entwickler hilfreich sein könnten, " "hinzufügen können." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Dieses Problem wurde den Entwicklern bereits gemeldet. Vielen Dank!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Das geschah während eines vorhergehenden Bereitschaftsmodus und verhinderte " "ein ordnungsgemäßes Fortsetzen." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Das geschah während eines vorhergehenden Ruhezustandes und verhinderte ein " "ordnungsgemäßes Fortsetzen." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Das Fortsetzen blieb nahe dem Ende des Vorgangs hängen und wird ausgesehen " "haben, also ob es ordnungsgemäß abgeschlossen wurde." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Bitte eine Taste drücken, um fortzufahren …" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Was möchten Sie tun? Ihre Möglichkeiten sind:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Bitte auswählen (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i Bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Bitte füllen Sie, nachdem der Problembericht versandt wurde, das Formular " "aus, welches sich automatisch in ihrem Browser öffnen wird." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "Bericht &senden (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Lokal analysieren" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "Bericht an&zeigen" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "Berichtsdatei &behalten, für spätere Meldung oder um sie an einen anderen " "Ort zu kopieren." #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Abbrechen und zukünftige Abstürze dieser Programmversion &ignorieren" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Abbruch" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Datei mit Problembericht:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Bestätigen" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Fehler: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Die gesammelten Informationen können an die Entwickler gesendet werden,\n" "um die Anwendung zu verbessern. Das kann einige Minuten dauern." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Die gesammelten Informationen werden zum Fehlerverfolgungssystem gesendet.\n" "Das kann einige Minuten dauern." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Fertig" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "keine" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Gewählt: %s. Mehrfache Auswahl:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Auswahl:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Pfad zur Datei (Eingabetaste um abzubrechen):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Datei existiert nicht." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Das ist ein Verzeichnis." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Um fortzufahren, müssen Sie die folgende Adresse aufrufen:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Sie können jetzt einen Browser starten oder diese Adresse, in einen Browser " "auf einem anderen Rechner, kopieren." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Browser starten" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Keine aktuellen Absturzberichte. Versuchen Sie --help für weitere " "Informationen." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Das Paket \"%s\" lies sich nicht installieren oder aktualisieren." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Vollständiger Bericht (empfohlen; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Problembericht an die Entwickler senden?</b></big>\n" #~ "\n" #~ "Bitte füllen Sie das Formular aus, welches sich nach dem Senden des " #~ "Problemberichts in einem neuen Browser-Fenster öffnet." #~ msgid "Application problem" #~ msgstr "Anwendungsproblem" #~ msgid "_Send Report" #~ msgstr "_Bericht senden" #~ msgid "Generic error" #~ msgstr "Allgemeiner Fehler" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Bitte füllen Sie, nachdem der Problembericht versandt wurde, das Formular " #~ "aus, welches sich automatisch in ihrem Browser öffnen wird." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s wurde unerwartet beendet am %s um %s." #~ msgid "Restart _Program" #~ msgstr "_Programm neustarten" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Entschuldigung, das Paket \"%s\" lies " #~ "sich nicht installieren oder aktualisieren.</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Vollständiger Bericht (empfohlen; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Reduzierter Bericht (langsame Internetverbindung; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "&Reduzierter Bericht (langsame Internetverbindung; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Dies wird einige große Teile aus dem Bericht entfernen. Diese sind für die " #~ "Entwickler sehr hilfreich um das Problem zu untersuchen, aber sie könnten zu " #~ "groß zum hochladen sein, wenn Sie eine langsame Internetverbindung haben." #~ msgid "&Report Problem..." #~ msgstr "&Fehler melden..." #~ msgid "_Report Problem..." #~ msgstr "_Fehler melden..." #~ msgid "&Send" #~ msgstr "&Senden" #~ msgid "Kernel problem" #~ msgstr "Kernel-Problem" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Sie können den Entwicklern helfen das Paket zu korrigieren, indem sie das " #~ "Problem melden." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Dies ist kein %s-Paket" #~ msgid "Content of the report" #~ msgstr "Inhalt des Berichts" #~ msgid "Package problem" #~ msgstr "Paketproblem" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Ihr System erlitt ein ernstes Kernel-Problem" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Sie können den Entwicklern helfen das Problem zu korrigieren, indem sie es " #~ "melden." #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "Ungültige Anzahl von Argumenten; benutzen Sie --help für die Kurzhilfe" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "Sie müssen entweder eine lokale Operation (»-s«, »-g« oder »-o«) ausführen " #~ "oder eine Legitimierungsdatei (»--auth«) angeben; lesen Sie dazu die " #~ "Kurzhilfe mit »--help«" #~ msgid "Send this data to the developers?" #~ msgstr "Diese Daten an die Entwickler senden?" #~ msgid "&Details..." #~ msgstr "&Details …" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Sofern Sie nicht etwas Vertrauliches durchgeführt haben (Eingabe von " #~ "Passwörtern oder anderen privaten Informationen), können Sie bei der " #~ "Verbesserung der Anwendung helfen, indem Sie den Fehler melden." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Sofern Sie nicht etwas Vertrauliches durchgeführt haben (Eingabe von\n" #~ "Passwörtern oder anderen privaten Informationen), können Sie bei der\n" #~ "Verbesserung der Anwendung helfen, indem Sie den Fehler melden." #~ msgid "&Ignore future crashes of this program version" #~ msgstr "Zukünftige Abstürze dieser Programmversion &ignorieren" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "Zukünftige Abstürze dieser Programmversion _ignorieren" #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Entschuldigung, \"%s\" wurde unerwartet beendet" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Entschuldigung, das Programm \"%s\" wurde unerwartet beendet." #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Entschuldigung, \"%s\" wurde unerwartet beendet." #~ msgid "Restart &Program" #~ msgstr "&Programm neustarten" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Das Paket \"%s\" ließ sich nicht installieren oder aktualisieren." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Entschuldigung, die Anwendung %s wurde unerwartet beendet." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [Optionen] <Apport-Berichtsdatei | Absturzkennung>" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Das geschah während eines vorhergehenden Bereitschaftsmodus und verhinderte " #~ "ein ordnungsgemäßes Fortsetzen." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Das geschah während eines vorhergehenden Ruhezustandes und verhinderte ein " #~ "ordnungsgemäßes Fortsetzen." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Ihr System könnte instabil werden und muss eventuell neu gestartet werden." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/el.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000171500�14416106601�011433� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Greek, Modern (1453-) translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Nick Andrik <nick.andrik@gmail.com>\n" "Language-Team: Greek, Modern (1453-) <el@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Ακύρωση" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Εντάξει" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Αναφορά αποτυχίας συστήματος" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Μας συγχωρείτε, συνέβη ένα εσωτερικό σφάλμα.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Εάν συναντήσετε περαιτέρω προβλήματα, παρακαλούμε επανεκκινήστε τον " "υπολογιστή σας." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" "Αποστείλετε αναφορά λάθους για να βοηθήσει στην επίλυση του προβλήματος" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Αγνοήστε μελλοντικά προβλήματα αυτής της έκδοσης προγράμματος" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Προβολή λεπτομερειών" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "Τοπική _εξέταση" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Να παραμείνει κλεισμένο" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Συνέχεια" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Συλλογή πληροφοριών προβλήματος</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Συλλέγονται πληροφορίες που μπορεί να βοηθήσουν τους υπευθύνους ανάπτυξης " "στην επιδιόρθωση του προβλήματος που αναφέρετε." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Αποστολή πληροφοριών προβλήματος" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Αποστολή πληροφοριών του προβλήματος</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Οι πληροφορίες που συλλέχθηκαν αποστέλλονται στο σύστημα καταγραφής λαθών. " "Αυτό μπορεί να διαρκέσει λίγα λεπτά." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Αρχείο κατάρρευσης Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(δυαδικά δεδομένα)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Λυπούμαστε, η εφαρμογή %s σταμάτησε απροσδόκητα." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Συγνώμη,το %s τερματίστηκε απροδόκητα." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Συγνώμη, το %s παρουσίασε εσωτερικό σφάλμα." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Αποστολή αναφοράς προβλήματος στους προγραμματιστές;" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Αποστολή" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Εξαναγκασμένος τερματισμός" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Επανεκκίνηση" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Η εφαρμογή %s σταμάτησε να ανταποκρίνεται." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Το πρόγραμμα \"%s\" σταμάτησε να ανταποκρίνεται." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Πακέτο: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" "Συγνώμη , κάποιο πρόβλημα παρουσιάστηκε κατά την εγκατάσταση του λογισμικού." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Η εφαρμογή %s παρουσίασε ένα εσωτερικό σφάλμα." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Η εφαρμογή %s τερματίστηκε απροσδόκητα." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Στο μέλλον να αγνοούνται προβλήματα αυτού του τύπου" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Απόκρυψη λεπτομεριών" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Χρήση: %s <αναφορά> <κατάλογος προορισμού>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Ο κατάλογος προορισμού υπάρχει ήδη και δεν είναι κενός." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Όνομα χρήστη:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Κωδικός πρόσβασης:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Συλλογή πληροφοριών προβλήματος" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Συλλογή πληροφοριών προβλήματος" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Μπορείτε να στείλετε τις πληροφορίες που συλλέχθηκαν στους υπεύθυνους " "ανάπτυξης ώστε να βελτιώσουν την εφαρμογή. Αυτό μπορεί να διαρκέσει λίγα " "λεπτά." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Αποστολή πληροφοριών προβλήματος" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Συλλογή πληροφοριών συστήματος" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Απαιτείται πιστοποίηση για την συλλογή πληροφοριών συστήματος για αυτήν την " "αναφορά προβλήματος" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Αναφορές προβλημάτων συστήματος" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Παρακαλώ εισάγετε το συνθηματικό σας για να αποκτήσετε πρόσβαση στις " "αναφορές προβλημάτων των προγραμμάτων συστήματος" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Αναφορά προβλήματος..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Αναφορά δυσλειτουργίας στους προγραμματιστές" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Δείτε τη σελίδα τεκμηρίωσης για λεπτομέρειες." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "ορίστε το όνομα αρχείου καταγραφών που θα παράγεται από το valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "επαναχρησιμοποίηση ενός καταλόγου απομόνωσης (SDIR) που δημιουργήθηκε την " "προηγούμενη φορά, ή αν δεν υπάρχει, δημιούργησε το" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "να μη δημιουργηθεί ή επαναχρησιμοποιηθεί κατάλογος απομόνωσης για σύμβολα " "αποσφαλμάτωσης, αλλά να χρησιμοποιηθούν μόνο εγκαταστημένα σύμβολα " "αποσφαλμάτωσης." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "επαναχρησιμοποίηση ενός καταλόγου προσωρινής μνήμης (CDIR) που δημιουργήθηκε " "προηγούμενη φορά, ή αν δεν υπάρχει, δημιούργησε το" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "να αναφέρεται η πρόοδος λήψης/εγκατάστασης όταν γίνεται εγκατάσταση πακέτων " "σε περιβάλλον απομόνωσης" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "το εκτελέσιμο που τρέχει το εργαλείο ελέγχου μνήμης του valgrind για την " "ανίχνευση διαρροής μνήμης (memory leak)" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Εγκαταστήστε ένα επιπλέον πακέτο στο περιβάλλον δοκιμών (μπορεί να " "προσδιοριστεί πολλές φορές)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Σφάλμα: το %s δεν είναι εκτελέσιμο. Διακοπή." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Το σύστημά σας πιθανώς να καταστεί ασταθές και ίσως απαιτηθεί η " "επανεκκίνησή του." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Να μην γίνει προσθήκη νέων στοιχείων στην αναφορά, αλλά να γραφτούν στο " "stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Εκκινήστε μια διαδραστική συνεδρία gdb με το core dump της αναφοράς (το -o " "παραβλέπεται, δεν δημιουργείται εκ νέου η αναφορά)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Εγγραφή της τροποποιημένης αναφοράς στο επιλεγμένο αρχείο αντί για αλλαγή " "της αρχικής αναφοράς" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Αφαίρεση του αρχείου εικόνας μνήμης (core dump) από την αναφορά μετά την " "επαναδημιουργία της ακολουθίας κλήσεων στοίβας" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Παράκαμψη του CoreFile της αναφοράς" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Παράκαμψη του ExecutablePath της αναφοράς" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Παράκαμψη των ProcMaps της αναφοράς" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Επανοικοδόμηση των πληροφοριών πακέτου της αναφοράς" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Φτιάξτε ένα προσωρινό περιβάλλον δοκιμών και κατεβάστε/εγκαταστήστε τα " "απαραίτητα πακέτα και διορθώστε σύμβολα εκεί· χωρίς η επιλογή αυτή να " "υποθέτει ότι τα απαραίτητα πακέτα και τα σύμβολα αποσφαλμάτωσης είναι ήδη " "εγκατεστημένα στο σύστημα. Τα σημεία παράμετροι για το σύστημα συσκευασίας " "ρυθμίζουν το βασικό κατάλογο· Αν ορίσετε «σύστημα», αυτό θα χρησιμοποιήσει " "τα αρχεία ρυθμίσεων του συστήματος αλλά τότε θα έχει μόνο τη δυνατότητα να " "εντοπίζει τα σπασμένα αρχεία που συνέβησαν όταν ήταν σε εκτέλεση η " "αποδέσμευση." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Αναφορά προόδου λήψης/εγκατάστασης όταν εγκαθίστανται πακέτα στο δοκιμαστικό " "χώρο" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Βάζουμε μπροστά χρονικές ενδείξεις για να συνδεθούν μηνύματα, για τη " "λειτουργία παρτίδας" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Δημιουργία και χρήση αποθετηρίων τρίτων από πηγές που καθορίζονται στις " "αναφορές" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" "Προσωρινός κατάλογος για πακέτα που τοποθετούνται στο δοκιμαστικό χώρο " "(sandbox)" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Κατάλογος για χύμα πακέτα.Οι μελλοντικές διαδρομές ας υποθέσουμε πως ήδη τα " "πακέτα έχουν κατεβεί και εξάγονται στο sandbox." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Διαδρομή προς ένα αρχείο με πληροφορίες πιστοποίησης της βάσης δεδομένων " "κατάρρευσης. Χρησιμοποιείται όταν προσδιορίζεται ένα ID κατάρρευσης για την " "αποστολή των επαναπροσδιορισμένων στοιχείων του stack (μόνο αν κανένα από τα " "-g, -o και -s δεν ορίζονται)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Προβολή των επαναπροσδιορισμένων στοιχείων του stack και ερώτηση για " "επιβεβαίωση πριν την αποστολή τους στη βάση δεδομένων κατάρρευσης." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Διαδρομή προς τη διπλότυπη βάση δεδομένων sqlite (προεπιλογή: μη έλεγχος " "διπλότυπου)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Δεν μπορείτε να χρησιμοποιήσετε το -C χωρίς το -S. Διακοπή." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Συμφωνείτε με την αποστολή αυτών ως συνημμένων; [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Αυτό το πακέτο δεν φαίνεται να έχει εγκατασταθεί σωστά" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Αυτό δεν είναι ένα επίσημο πακέτο του %s. Παρακαλώ αφαιρέστε κάθε πακέτο από " "τρίτους και προσπαθήστε ξανά." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Έχετε εγκατεστημένες κάποιες ξεπερασμένες εκδόσεις ορισμένων πακέτων. " "Παρακαλούμε αναβαθμίστε τα παρακάτω πακέτα και ελέγξτε αν το πρόβλημα " "συνεχίζει να υφίσταται:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "άγνωστο πρόγραμμα" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Συγνώμη, το πρόγραμμα \"%s\" τερματίστηκε απροσδόκητα" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Πρόβλημα στο %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Ο υπολογιστής σας δεν έχει αρκετή ελεύθερη μνήμη για να αναλύσει αυτόματα το " "πρόβλημα και να στείλει μια αναφορά στους προγραμματιστές." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Μη έγκυρη αναφορά προβλήματος" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" "Δεν σας επιτρέπεται να αποκτήσετε πρόσβαση σε αυτή την αναφορά προβλήματος." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Σφάλμα" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Δεν υπάρχει αρκετός χώρος στον δίσκο για την επεξεργασία αυτής της αναφοράς." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Δεν ορίστηκε πακέτο" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Χρειάζεται να ορίσετε ένα πακέτο ή ένα PID. Δείτε την --help για " "περισσότερες πληροφορίες." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Δεν επιτρέπεται η πρόσβαση" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Η συγκεκριμένη διεργασία δεν ανήκει σε εσάς. Παρακαλούμε τρέξτε το πρόγραμμα " "ως ιδιοκτήτης της διεργασίας ή ως root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Άκυρος αριθμός αναγνώρισης της διεργασίας (PID)" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" "Αυτός ο αριθμός αναγνώρισης της διεργασίας (PID) δεν ανήκει σε κάποιο " "πρόγραμμα" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Το σενάριο συμπτώματος %s δεν προσδιόρισε κανένα επηρεασμένο πακέτο" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Το πακέτο %s δεν υπάρχει" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Αδυναμία δημιουργίας αναφοράς" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Ενημέρωση αναφοράς προβλήματος" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Δεν αναφέρατε εσείς, ούτε είστε εγγεγραμμένος για ενημερώσεις σε αυτήν την " "αναφορά σφάλματος, ή η αναφορά είναι διπλή ή ήδη κλειστή.\n" "\n" "Παρακαλούμε δημιουργήστε μια νέα αναφορά με τη χρήση του \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Δεν έχετε δημιουργήσει εσείς αυτήν την αναφορά σφάλματος. Είναι πολύ " "ευκολότερο να σημειώσετε ένα σφάλμα ως διπλότυπο παρά να μετακινήσετε τα " "σχόλια και τα συνημμένα σας σε ένα νέο σφάλμα.\n" "\n" "Έπειτα, προτείνουμε να καταχωρίσετε μια νέα αναφορά σφάλματος με τη χρήση " "του \"apport-bug\" και να κάνετε ένα σχόλιο σε αυτό το σφάλμα για αυτό που " "καταχωρείτε.\n" "\n" "Θέλετε σίγουρα να προχωρήσετε;" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Δεν έχουν συλλεχθεί επιπλέον πληροφορίες." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Τι είδους πρόβλημα θέλετε να αναφέρετε;" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Άγνωστο σύμπτωμα" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Το σύμπτωμα \"%s\" είναι άγνωστο." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Αφού κλείσετε αυτό το μήνυμα παρακαλούμε κάντε κλικ στο παράθυρο μιας " "εφαρμογής για να αναφέρετε ένα πρόβλημα σχετικό με αυτήν." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "Το xprop απέτυχε να προσδιορίσει την ταυτότητα (PID) του παραθύρου." #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <αριθμός αναφοράς>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Καθορίστε ένα όνομα πακέτου." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Προσθέστε μια επιπλέον ετικέτα στην αναφορά. Μπορεί να οριστεί πολλές φορές." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [επιλογές] [σύμπτωμα|pid|πακέτο|διαδρομή προγράμματος|αρχείο " ".apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Εκκίνηση σε λειτουργία υποβολής σφάλματος. Απαιτείται η παράμετρος --package " "και προαιρετικά --pid, ή απλά --pid. Εάν κανένα από αυτά δεν δίνεται, " "εμφανίστε έναν κατάλογο γνωστών συμπτωμάτων. ( Η εξ ορισμού επιλογή εάν " "δίνεται ένα και μοναδικό όρισμα.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" "Επιλέξτε ένα παράθυρο πατώντας το, για να συμπληρώσετε μια αναφορά " "προβλήματος." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Εκκίνηση σε λειτουργία ενημέρωσης σφάλματος. Δέχεται προαιρετικά την " "παράμετρο --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Υποβάλετε αναφορά σφάλματος για ένα σύμπτωμα. (Στην περίπτωση που η ονομασία " "του συμπτώματος δίνεται ως μοναδικό όρισμα.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Καθορίστε όνομα πακέτου σε κατάσταση --file-bug. Αυτό είναι προαιρετικό εάν " "έχει ήδη καθοριστεί ένα --pid. (Στην περίπτωση που το όνομα πακέτου δίνεται " "ως μοναδικό όρισμα.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Προσδιορίστε ένα εκτελούμενο πρόγραμμα στην επιλογή --file-bug. Εάν αυτό " "προσδιοριστεί, η αναφορά θα περιέχει περισσότερες πληροφορίες. (Όταν η " "ταυτότητα διεργασίας (PID) δίνεται ως η μόνη παράμετρος.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" "Το παρεχόμενο αναγνωριστικό διεργασίας (PID) είναι για μια εφαρμογή που έχει " "κολλήσει." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Αναφέρετε την κατάρρευση από το δεδομένο αρχείο .apport ή .crash αντί αυτών " "στο %s. (Στην περίπτωση που το αρχείο δίδεται ως το μοναδικό όρισμα.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Κατά τη λειτουργία αναφοράς σφαλμάτων, αποθηκεύστε τις συλλεχθείσες " "πληροφορίες σε ένα αρχείο αντί να τις αναφέρετε. Το αρχείο αυτό μπορεί να " "αποσταλεί για αναφορά αργότερα από έναν διαφορετικό υπολογιστή." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Τυπώστε τον αριθμό έκδοσης της εφαρμογής Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Αυτό θα εκκινήσει το apport-retrace σε ένα παράθυρο τερματικού για να " "διερευνηθεί η σύγκρουση." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Εκτέλεση συνεδρίας gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Εκτέλεση συνεδρίας gdb χωρίς λήψη συμβόλων εκφαλμάτωσης" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Ενημέρωση %s με πλήρως συμβολική παρακολούθηση στίβας" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Αυτή η αναφορά αφορά πρόγραμμα το οποίο έχει πλέον απεγκατασταθεί." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Το πρόβλημα παρουσιάστηκε με το πρόγραμμα %s το οποίο έχει αλλάξει από τη " "στιγμή που συνέβη η κατάρρευση." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" "Αυτή η αναφορά προβλήματος έχει καταστραφεί και είναι αδύνατη η επεξεργασία " "της." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Η αναφορά ανήκει σε ένα πακέτο το οποίο δεν είναι εγκατεστημένο." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "Παρουσιάστηκε ένα σφάλμα κατά την προσπάθεια επεξεργασίας αυτής της αναφοράς " "προβλήματος:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" "Αδύνατος ο καθορισμός του πακέτου ή του ονόματος του πακέτου πηγαίου κώδικα." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Αδύνατη η εκκίνηση του περιηγητή" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Αδύνατη η εκκίνηση του περιηγητή για το άνοιγμα του %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Εισάγετε τα στοιχεία του λογαριασμού σας στο σύστημα παρακολούθησης " "σφαλμάτων %s." #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Πρόβλημα δικτύου" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Αδυναμία σύνδεσης στη βάση δεδομένων καταρρεύσεων, παρακαλώ ελέγξτε τη " "σύνδεσή σας στο διαδίκτυο." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Εξάντληση μνήμης" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Το σύστημα δεν έχει αρκετή ελεύθερη μνήμη για τη διαδικασία αναφοράς " "κατάρρευσης." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Αδυναμία αναφοράς του προβλήματος:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Πρόβλημα ήδη γνωστό" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Αυτό το πρόβλημα έχει ήδη αναφερθεί στο σύστημα αναφοράς λαθών, στη σελίδα " "που βλέπετε. Παρακαλώ εξετάστε, αν μπορείτε να προσθέσετε κάποιες επιπλέον " "πληροφορίες, που να είναι χρήσιμες στους προγραμματιστές." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" "Αυτό το πρόβλημα έχει ήδη αναφερθεί στους συντελεστές της εφαρμογής. Σας " "ευχαριστούμε!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Αυτό προκλήθηκε από προηγούμενη αναστολή και απέτρεψε το σύστημα από το να " "συνεχίσει σωστά." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Αυτό προκλήθηκε από προηγούμενη αδρανοποίηση και απέτρεψε το σύστημα από το " "να συνεχίσει σωστά." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Η διαδικασία επαναφοράς σταμάτησε λίγο πριν την ολοκλήρωσή της και φαίνεται " "σαν να ολοκληρώθηκε κανονικά." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Πατήστε ένα πλήκτρο για να συνεχίσετε..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Τι θα θέλατε να κάνετε; Οι επιλογές σας είναι:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Παρακαλώ επιλέξτε (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Μετά την αποστολή της αναφοράς προβλήματος, παρακαλώ\n" "συμπληρώστε την φόρμα στον περιηγητή ιστού που θα ανοίξει αυτόματα." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "Απο&στολή αναφοράς (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Διερεύνηση τοπικά" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Εμφάνιση αναφοράς" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Κράτηση της αναφοράς για μετέπειτα αποστολή ή αντιγραφή της κάπου αλλού" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Ακύρωση και αγνόηση μελλοντ&ικών καταρρεύσεων αυτής της έκδοσης του " "προγράμματος" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Ακύρωση" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Αρχείο αναφοράς προβλήματος:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Επιβεβαίωση" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Σφάλμα: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Οι πληροφορίες που έχουν συλλεχθεί, μπορούν να αποσταλούν στους υπεύθυνους " "ανάπτυξης για την περαιτέρω βελτίωση της\n" "εφαρμογής. Η αποστολή μπορεί να διαρκέσει μερικά λεπτά." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Οι πληροφορίες που συλλέχθηκαν αποστέλλονται στο σύστημα καταγραφής " "σφαλμάτων.\n" "Αυτό μπορεί να διαρκέσει μερικά λεπτά." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Ολοκληρώθηκε" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "κανένα" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Επιλέχθηκε: %s. Πολλαπλές επιλογές:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Επιλογές:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Διαδρομή προς το αρχείο (πατήστε Enter για ακύρωση):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Το αρχείο δεν υπάρχει." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Αυτό είναι κατάλογος αρχείων." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" "Για να συνεχίσετε πρέπει να επισκεφθείτε αυτή τη διεύθυνση διαδικτύου (URL):" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Μπορείτε να εκκινήσετε τώρα ένα περιηγητή ιστοσελίδων ή να αντιγράψετε αυτή " "τη διεύθυνση σε έναν περιηγητή σε άλλον υπολογιστή." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Εκκινήστε έναν περιηγητή ιστοσελίδων τώρα" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Δεν εκκρεμούν αναφορές καταρρεύσεων. Δοκιμάστε την --help για περισσότερες " "πληροφορίες." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Μπορείτε να βοηθήσετε τους υπεύθυνους ανάπτυξης να το φτιάξουν αναφέροντας " #~ "το." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Το πακέτο \"%s\" απέτυχε να εγκατασταθεί ή να ενημερωθεί." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Ολοκληρωμένη αναφορά (προτείνεται το %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Να αποσταλεί η αναφορά του προβλήματος στους " #~ "προγραμματιστές;</b></big>\n" #~ "\n" #~ "Μετά την αναφορά του προβλήματος, παρακαλώ συμπληρώστε τη φόρμα που θα " #~ "ανοίξει αυτόματα στον περιηγητή ιστού." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Αν δεν κάνατε κάτι πολύ εμπιστευτικό (εισαγωγή κωδικών πρόσβασης ή κάποιων " #~ "άλλων ιδιωτικών σας δεδομένων), μπορείτε να βοηθήσετε στην βελτίωση της " #~ "εφαρμογής, αναφέροντας το πρόβλημα." #~ msgid "Application problem" #~ msgstr "Πρόβλημα εφαρμογής" #~ msgid "_Send Report" #~ msgstr "Α_ποστολή Αναφοράς" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Αν δεν κάνατε κάτι πολύ εμπιστευτικό (εισαγωγή κωδικών πρόσβασης ή \n" #~ "κάποιων άλλων ιδιωτικών σας δεδομένων), μπορείτε να βοηθήσετε στην \n" #~ "βελτίωση της εφαρμογής, αναφέροντας το πρόβλημα." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "Το %s τερματίστηκε απροσδόκητα στο %s και στο %s." #~ msgid "Restart _Program" #~ msgstr "Επανεκκίνηση_Προγράμματος" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\"> Λυπούμαστε, αλλά το πακέτο \"%s\" " #~ "απέτυχε να εγκατασταθεί ή να αναβαθμιστεί.</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Αποστολή ολοκληρωμένης αναφοράς (προτείνεται %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Περιορισμένη αναφορά (αργή σύνδεση με το διαδίκτυο: %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "" #~ "Να αγνοηθούν μελλοντικές καταρρεύσεις αυτής της έκδοσης του προγράμματος" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Απόστολή &περιορισμένης αναφοράς (αργή σύνδεση με το διαδίκτυο %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Αυτό θα αφαιρέσει κάποια ογκώδη στοιχεία από την αναφορά. Τα στοιχεία αυτά " #~ "είναι πολύ χρήσιμα στους προγραμματιστές για τον εντοπισμό και την διόρθωση " #~ "λαθών, αλλά είναι πολύ μεγάλα για να τα αποστείλετε αν έχετε αργή σύνδεση." #~ msgid "&Report Problem..." #~ msgstr "&Αναφορά Προβλήματος..." #~ msgid "_Report Problem..." #~ msgstr "_Αναφορά Προβλήματος..." #~ msgid "Kernel problem" #~ msgstr "Πρόβλημα πυρήνα" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Μπορείτε να βοηθήσετε τους προγραμματιστές να διορθώσουν το πακέτο " #~ "αναφέροντας το πρόβλημα." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Αυτό δεν είναι γνήσιο το πακέτο %s" #~ msgid "Content of the report" #~ msgstr "Περιεχόμενο της αναφοράς" #~ msgid "Package problem" #~ msgstr "Πρόβλημα πακέτου" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Το σύστημα σας αντιμετώπισε ένα σοβαρό πρόβλημα στον πυρήνα." #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "Λανθασμένος αριθμός παραμέτρων· χρησιμοποιήστε το --help για μια σύντομη " #~ "βοήθεια" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [επιλογές] <αναφορά προβλήματος apport | ID κατάρρευσης>" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Συγνώμη, η εφαρμογή %s τερματίστηκε απροσδόκητα." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Αυτό συνέβη σε προηγούμενη αναστολή λειτουργίας του υπολογιστή και εμπόδισε " #~ "την κανονική επαναφορά της." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Αυτό συνέβη σε προηγούμενη αδρανοποίηση λειτουργίας του υπολογιστή και " #~ "εμπόδισε την κανονική επαναφορά της." #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "χρειάζεται είτε να πραγματοποιήσετε μια τοπική ενέργεια (-s, -g, -o) ή να " #~ "παρέχετε ένα αρχείο πιστοποίησης (--auth). Δείτε το --help για μια σύντομη " #~ "βοήθεια" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Το σύστημά σας τώρα υπάρχει περίπτωση να καταστεί ασταθές και ίσως χρειαστεί " #~ "επανεκκίνηση." ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/en_AU.po��������������������������������������������������������������������������0000664�0000000�0000000�00000136657�14416106601�012040� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# English (Australia) translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Anthony Harrington <Unknown>\n" "Language-Team: English (Australia) <en_AU@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Cancel" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Crash report" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Sorry, an internal error happened.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "If you notice further problems, try restarting the computer." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Send an error report to help fix this problem" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignore future problems of this program version" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Show Details" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examine locally" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Leave Closed" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continue" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Collecting problem information</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Information is being collected that may help the developers fix the problem " "you report." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Uploading problem information" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Uploading problem information</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport crash file" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binary data)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Sorry, the application %s has stopped unexpectedly." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Sorry, %s has closed unexpectedly." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Sorry, %s has experienced an internal error." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Send problem report to the developers?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Send" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Force Closed" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Relaunch" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "The application %s has stopped responding." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "The program \"%s\" has stopped responding." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Package: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Sorry, a problem occurred while installing software." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "The application %s has experienced an internal error." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "The application %s has closed unexpectedly." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignore future problems of this type" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Hide Details" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Usage: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Destination directory exists and is not empty." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Username:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Password:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Collecting Problem Information" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Collecting problem information" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Uploading Problem Information" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Collect system information" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Authentication is required to collect system information for this problem " "report" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "System problem reports" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Please enter your password to access problem reports of system programs" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Report a problem..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Report a malfunction to the developers" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "See man page for details." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "specify the log file name produced by valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "report download/install progress when installing packages into sandbox" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Install an extra package into the sandbox (can be specified multiple times)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Error: %s is not an executable. Stopping." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Your system might become unstable now and might need to be restarted." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Do not put the new traces into the report, but write them to stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Write modified report to given file instead of changing the original report" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Remove the core dump from the report after stack trace regeneration" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Override report's CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Override report's ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Override report's ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Rebuild report's Package information" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Report download/install progress when installing packages into sandbox" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Prepend timestamps to log messages, for batch operation" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Create and use third-party repositories from origins specified in reports" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Cache directory for packages downloaded in the sandbox" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Path to the duplicate sqlite database (default: no duplicate checking)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "You cannot use -C without -S. Stopping." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "OK to send these as attachments? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "This package does not seem to be installed correctly" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "This is not an official %s package. Please remove any third party package " "and try again." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "unknown program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Sorry, the program \"%s\" closed unexpectedly" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problem in %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Your computer does not have enough free memory to automatically analyse the " "problem and send a report to the developers." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Invalid problem report" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "You are not allowed to access this problem report." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Error" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "There is not enough disk space available to process this report." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "No package specified" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "You need to specify a package or a PID. See --help for more information." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permission denied" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Invalid PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "The specified process ID does not belong to a program." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Symptom script %s did not determine an affected package" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Package %s does not exist" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Cannot create report" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Updating problem report" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "No additional information collected." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "What kind of problem do you want to report?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Unknown symptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "The symptom \"%s\" is not known." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "After closing this message please click on an application window to report a " "problem about it." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop failed to determine process ID of the window" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Specify package name." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Add an extra tag to the report. Can be specified multiple times." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Click a window as a target for filing a problem report." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Start in bug updating mode. Can take an optional --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "The provided pid is a hanging application." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "In bug-filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Print the Apport version number." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "This will launch apport-retrace in a terminal window to examine the crash." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Run gdb session" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Run gdb session without downloading debug symbols" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Update %s with fully symbolic stack trace" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "This problem report applies to a program which is not installed any more." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "The problem happened with the program %s which changed since the crash " "occurred." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "This problem report is damaged and cannot be processed." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "The report belongs to a package that is not installed." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "An error occurred while attempting to process this problem report:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Could not determine the package or source package name." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Unable to start web browser" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Unable to start web browser to open %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Please enter your account information for the %s bug tracking system" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Network problem" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Cannot connect to crash database, please check your Internet connection." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memory exhaustion" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Your system does not have enough memory to process this crash report." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "The problem cannot be reported:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problem already known" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "This problem was already reported to developers. Thank you!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "The resume processing hung very near the end and will have appeared to have " "completed normally." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Press any key to continue..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "What would you like to do? Your options are:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Please choose (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Send report (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examine locally" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&View report" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "&Keep report file for sending later or copying to somewhere else" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Cancel and &ignore future crashes of this program version" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Cancel" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Problem report file:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirm" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Error: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Done" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "none" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Selected: %s. Multiple choices:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Choices:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Path to file (Enter to cancel):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "File does not exist." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "This is a directory." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "To continue, you must visit the following URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "You can launch a browser now, or copy this URL into a browser on another " "computer." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Launch a browser now" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "No pending crash reports. Try --help for more information." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "This is not a genuine %s package" #~ msgid "&Report Problem..." #~ msgstr "&Report Problem..." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s closed unexpectedly on %s at %s." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Your system encountered a serious kernel problem." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Send complete report (recommended; %s)" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "You can help the developers to fix the problem by reporting it." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Send &reduced report (slow Internet connection; %s)" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "The package \"%s\" failed to install or upgrade." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "This occurred during a previous suspend and prevented it from resuming " #~ "properly." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "This occurred during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgid "Application problem" #~ msgstr "Application problem" #~ msgid "Content of the report" #~ msgstr "Content of the report" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Complete report (recommended; %s)" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Reduced report (slow Internet connection; %s)" #~ msgid "Restart _Program" #~ msgstr "Restart _Program" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow Internet connection." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignore future crashes of this program version" #~ msgid "_Report Problem..." #~ msgstr "_Report Problem..." #~ msgid "Package problem" #~ msgstr "Package problem" #~ msgid "Kernel problem" #~ msgstr "Kernel problem" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgid "_Send Report" #~ msgstr "_Send Report" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "incorrect number of arguments; use --help for a short help" #~ msgid "Send this data to the developers?" #~ msgstr "Send this data to the developers?" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Sorry, the package \"%s\" failed to install or upgrade." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Sorry, %s closed unexpectedly" #~ msgid "Generic error" #~ msgstr "Generic error" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ignore future crashes of this program version" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Sorry, the program \"%s\" closed unexpectedly." #~ msgid "Restart &Program" #~ msgstr "Restart &Program" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Sorry, %s closed unexpectedly." #~ msgid "&Details..." #~ msgstr "&Details..." #~ msgid "&Send" #~ msgstr "&Send" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Sorry, the application %s has closed unexpectedly." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Your system might become unstable now and might need to be restarted." ���������������������������������������������������������������������������������apport-2.20.11/po/en_CA.po��������������������������������������������������������������������������0000664�0000000�0000000�00000135535�14416106601�012010� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# English (Canada) translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: English (Canada) <en_CA@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Crash report" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Sorry, an internal error happened.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "If you notice further problems, try restarting the computer." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Send an error report to help fix this problem" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignore future problems of this program version" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Show Details" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examine locally" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Leave Closed" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continue" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Collecting problem information</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Information is being collected that may help the developers fix the problem " "you report." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Uploading problem information" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Uploading problem information</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport crash file" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binary data)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Sorry, the application %s has stopped unexpectedly." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Sorry, %s has closed unexpectedly." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Sorry, %s has experienced an internal error." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Send problem report to the developers?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Send" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Force Closed" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Relaunch" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "The application %s has stopped responding." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "The program \"%s\" has stopped responding." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Package: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Sorry, a problem occurred while installing software." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "The application %s has experienced an internal error." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "The application %s has closed unexpectedly." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignore future problems of this type" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Hide Details" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Usage: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Destination directory exists and is not empty." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Username:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Password:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Collecting Problem Information" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Collecting problem information" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Uploading Problem Information" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Collect system information" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Authentication is required to collect system information for this problem " "report" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "System problem reports" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Please enter your password to access problem reports of system programs" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Report a problem..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Report a malfunction to the developers" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "See man page for details." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "specify the log file name produced by valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "report download/install progress when installing packages into sandbox" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Install an extra package into the sandbox (can be specified multiple times)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Error: %s is not an executable. Stopping." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Your system might become unstable now and might need to be restarted." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Do not put the new traces into the report, but write them to stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Write modified report to given file instead of changing the original report" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Remove the core dump from the report after stack trace regeneration" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Override report's CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Override report's ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Override report's ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Rebuild report's Package information" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Report download/install progress when installing packages into sandbox" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Prepend timestamps to log messages, for batch operation" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Cache directory for packages downloaded in the sandbox" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Path to the duplicate sqlite database (default: no duplicate checking)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "You cannot use -C without -S. Stopping." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "OK to send these as attachments? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "This package does not seem to be installed correctly" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "This is not an official %s package. Please remove any third party package " "and try again." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "unknown program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Sorry, the program \"%s\" closed unexpectedly" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problem in %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Invalid problem report" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "You are not allowed to access this problem report." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Error" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "There is not enough disk space available to process this report." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "No package specified" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "You need to specify a package or a PID. See --help for more information." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permission denied" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Invalid PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "The specified process ID does not belong to a program." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Symptom script %s did not determine an affected package" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Package %s does not exist" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Cannot create report" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Updating problem report" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "No additional information collected." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "What kind of problem do you want to report?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Unknown symptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "The symptom \"%s\" is not known." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "After closing this message please click on an application window to report a " "problem about it." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop failed to determine process ID of the window" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Specify package name." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Add an extra tag to the report. Can be specified multiple times." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Click a window as a target for filing a problem report." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Start in bug updating mode. Can take an optional --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "The provided pd is a hanging application." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Print the Apport version number." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "This will launch apport-retrace in a terminal window to examine the crash." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Run gdb session" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Run gdb session without downloading debug symbols" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Update %s with fully symbolic stack trace" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "This problem report applies to a program which is not installed any more." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "The problem happened with the program %s which changed since the crash " "occurred." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "This problem report is damaged and cannot be processed." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "The report belongs to a package that is not installed." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "An error occurred while attempting to process this problem report:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Could not determine the package or source package name." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Unable to start web browser" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Unable to start web browser to open %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Please enter your account information for the %s bug tracking system" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Network problem" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Cannot connect to crash database, please check your Internet connection." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memory exhaustion" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Your system does not have enough memory to process this crash report." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "The problem cannot be reported:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problem already known" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "This problem was already reported to developers. Thank you!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "The resume processing hung very near the end and will have appeared to have " "completed normally." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Press any key to continue..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "What would you like to do? Your options are:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Please choose (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Send report (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examine locally" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&View report" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "&Keep report file for sending later or copying to somewhere else" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Cancel and &ignore future crashes of this program version" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Cancel" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Problem report file:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirm" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Error: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Done" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "none" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Selected: %s. Multiple choices:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Choices:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Path to file (Enter to cancel):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "File does not exist." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "This is a directory." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "To continue, you must visit the following URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "You can launch a browser now, or copy this URL into a browser on another " "computer." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Launch a browser now" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "No pending crash reports. Try --help for more information." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Your system encountered a serious kernel problem." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Sorry, %s closed unexpectedly" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "You can help the developers to fix the problem by reporting it." #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgid "Application problem" #~ msgstr "Application problem" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Reduced report (slow Internet connection; %s)" #~ msgid "Restart _Program" #~ msgstr "Restart _Program" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow Internet connection." #~ msgid "Package problem" #~ msgstr "Package problem" #~ msgid "Kernel problem" #~ msgstr "Kernel problem" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgid "Content of the report" #~ msgstr "Content of the report" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Complete report (recommended; %s)" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignore future crashes of this program version" #~ msgid "_Report Problem..." #~ msgstr "_Report Problem..." #~ msgid "_Send Report" #~ msgstr "_Send Report" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Sorry, the program \"%s\" closed unexpectedly." #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Sorry, %s closed unexpectedly." #~ msgid "&Details..." #~ msgstr "&Details..." #~ msgid "&Send" #~ msgstr "&Send" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgid "Generic error" #~ msgstr "Generic error" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ignore future crashes of this program version" #~ msgid "Restart &Program" #~ msgstr "Restart &Program" #~ msgid "&Report Problem..." #~ msgstr "&Report Problem..." #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Sorry, the package \"%s\" failed to install or upgrade." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "The package \"%s\" failed to install or upgrade." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s closed unexpectedly on %s at %s." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Send complete report (recommended; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Send &reduced report (slow Internet connection; %s)" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "This is not a genuine %s package" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "This occurred during a previous suspend and prevented it from resuming " #~ "properly." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "This occurred during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "incorrect number of arguments; use --help for a short help" #~ msgid "Send this data to the developers?" #~ msgstr "Send this data to the developers?" �������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/en_GB.po��������������������������������������������������������������������������0000664�0000000�0000000�00000136662�14416106601�012017� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# English (United Kingdom) translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Anthony Harrington <Unknown>\n" "Language-Team: English (United Kingdom) <en_GB@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Cancel" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Crash report" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Sorry, an internal error happened.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "If you notice further problems, try restarting the computer." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Send an error report to help fix this problem" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignore future problems of this program version" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Show Details" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examine locally" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Leave Closed" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continue" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Collecting problem information</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Information is being collected that may help the developers fix the problem " "you report." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Uploading problem information" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Uploading problem information</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport crash file" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binary data)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Sorry, the application %s has stopped unexpectedly." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Sorry, %s has closed unexpectedly." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Sorry, %s has experienced an internal error." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Send problem report to the developers?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Send" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Force Closed" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Relaunch" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "The application %s has stopped responding." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "The program \"%s\" has stopped responding." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Package: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Sorry, a problem occurred while installing software." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "The application %s has experienced an internal error." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "The application %s has closed unexpectedly." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignore future problems of this type" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Hide Details" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Usage: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Destination directory exists and is not empty." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Username:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Password" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Collecting Problem Information" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Collecting problem information" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Uploading Problem Information" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Collect system information" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Authentication is required to collect system information for this problem " "report" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "System problem reports" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Please enter your password to access problem reports of system programs" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Report a problem..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Report a malfunction to the developers" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "See man page for details." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "specify the log file name produced by Valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "report download/install progress when installing packages into sandbox" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "the executable that is run under Valgrind's memcheck tool for memory leak " "detection" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Install an extra package into the sandbox (can be specified multiple times)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Error: %s is not an executable. Stopping." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Your system might become unstable now and might need to be restarted." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Do not put the new traces into the report, but write them to stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Write modified report to given file instead of changing the original report" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Remove the core dump from the report after stack trace regeneration" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Override report's CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Override report's ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Override report's ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Rebuild report's Package information" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Report download/install progress when installing packages into sandbox" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Prepend timestamps to log messages, for batch operation" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Create and use third-party repositories from origins specified in reports" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Cache directory for packages downloaded in the sandbox" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Path to the duplicate sqlite database (default: no duplicate checking)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "You cannot use -C without -S. Stopping." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "OK to send these as attachments? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "This package does not seem to be installed correctly" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "This is not an official %s package. Please remove any third party package " "and try again." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "unknown program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Sorry, the program \"%s\" closed unexpectedly" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problem in %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Your computer does not have enough free memory to automatically analyse the " "problem and send a report to the developers." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Invalid problem report" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "You are not allowed to access this problem report." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Error" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "There is not enough disk space available to process this report." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "No package specified" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "You need to specify a package or a PID. See --help for more information." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permission denied" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Invalid PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "The specified process ID does not belong to a program." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Symptom script %s did not determine an affected package" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Package %s does not exist" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Cannot create report" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Updating problem report" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "No additional information collected." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "What kind of problem do you want to report?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Unknown symptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "The symptom \"%s\" is not known." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "After closing this message please click on an application window to report a " "problem about it." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop failed to determine process ID of the window" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Specify package name." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Add an extra tag to the report. Can be specified multiple times." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Click a window as a target for filing a problem report." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Start in bug updating mode. Can take an optional --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "The provided pid is a hanging application." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Print the Apport version number." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "This will launch apport-retrace in a terminal window to examine the crash." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Run gdb session" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Run gdb session without downloading debug symbols" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Update %s with fully symbolic stack trace" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "This problem report applies to a program which is not installed any more." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "The problem happened with the program %s which changed since the crash " "occurred." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "This problem report is damaged and cannot be processed." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "The report belongs to a package that is not installed." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "An error occurred while attempting to process this problem report:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Could not determine the package or source package name." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Unable to start web browser" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Unable to start web browser to open %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Please enter your account information for the %s bug tracking system" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Network problem" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Cannot connect to crash database, please check your Internet connection." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memory exhaustion" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Your system does not have enough memory to process this crash report." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "The problem cannot be reported:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problem already known" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "This problem has already been reported to developers. Thank you!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "The resume processing hung very near the end and appears to have completed " "normally." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Press any key to continue..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "What would you like to do? Your options are:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Please choose (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Send report (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examine locally" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&View report" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "&Keep report file for sending later or copying to somewhere else" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Cancel and &ignore future crashes of this program version" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Cancel" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Problem report file:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirm" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Error: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Done" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "none" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Selected: %s. Multiple choices:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Choices:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Path to file (Enter to cancel):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "File does not exist." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "This is a directory." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "To continue, you must visit the following URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "You can launch a browser now, or copy this URL into a browser on another " "computer." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Launch a browser now" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "No pending crash reports. Try --help for more information." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "The package \"%s\" failed to install or upgrade." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Complete report (recommended; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Sorry, %s closed unexpectedly" #~ msgid "Application problem" #~ msgstr "Application problem" #~ msgid "&Details..." #~ msgstr "&Details..." #~ msgid "_Send Report" #~ msgstr "_Send Report" #~ msgid "Generic error" #~ msgstr "Generic error" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s closed unexpectedly on %s at %s." #~ msgid "Restart _Program" #~ msgstr "Restart _Program" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Sorry, the package \"%s\" failed to install or upgrade." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Send complete report (recommended; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Reduced report (slow Internet connection; %s)" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Sorry, %s closed unexpectedly." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignore future crashes of this program version" #~ msgid "Restart &Program" #~ msgstr "Restart &Program" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Send &reduced report (slow Internet connection; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow Internet connection." #~ msgid "&Report Problem..." #~ msgstr "&Report Problem..." #~ msgid "_Report Problem..." #~ msgstr "_Report Problem..." #~ msgid "&Send" #~ msgstr "&Send" #~ msgid "Kernel problem" #~ msgstr "Kernel problem" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ignore future crashes of this program version" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "You can help the developers to fix the package by reporting the problem." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "This is not a genuine %s package" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Sorry, the program \"%s\" closed unexpectedly." #~ msgid "Content of the report" #~ msgstr "Content of the report" #~ msgid "Package problem" #~ msgstr "Package problem" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "You can help the developers to fix the problem by reporting it." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Your system encountered a serious kernel problem." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "This occurred during a previous suspend and prevented it from resuming " #~ "properly." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "This occurred during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "incorrect number of arguments; use --help for a short help" #~ msgid "Send this data to the developers?" #~ msgstr "Send this data to the developers?" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Sorry, the application %s has closed unexpectedly." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Your system might become unstable now and might need to be restarted." ������������������������������������������������������������������������������apport-2.20.11/po/eo.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000132612�14416106601�011437� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Esperanto translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Michael Moroni <michaelmoroni@disroot.org>\n" "Language-Team: Esperanto <eo@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: eo\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Aporto" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Nuligi" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Bone" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Raporto de kolapso" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Pardonu, interna eraro okazis.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Se vi renkontiĝas pliajn problemojn, klopodu restartigi la komputilon." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Sendi raporton de eraro por helpi en riparado de ĉi tiu problemo" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignori ontajn problemojn de la programaro en ĉi tiu versio" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Montri detalojn" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "Lok_e testi" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Lasi fermitan" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Daŭrigi" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Kolektado de informoj pri la problemo</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "La sistemo nun kolektas informojn, kiuj eble helpos al la evoluigantoj " "ripari la problemon, kiun vi raportas." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Alŝutado de informoj pri la problemo" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Alŝutado de informoj pri la problemo</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "La kolektitaj informoj estas sendataj al la sistemo de cimspurado. Tio povas " "daŭri kelkajn minutojn." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Kolapsdosiero de Aporto" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(duumaj datumoj)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Pardonu, %s fermiĝis neatendite." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Pardonu, interna eraro okazis en %s." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Ĉu sendi problem-raporton al la evoluigantoj?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Sendi" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Relanĉi" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakaĵo: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Pardonu, problemo okazis dum instalado de la programaro." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "La aplikaĵo %s fermiĝis neatendite." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignori onte tian problemon" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Kaŝi detalojn" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Uzado: %s <raporto> <celdosierujo>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "La celdosierujo ekzistas kaj ne estas malplena." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Uzantnomo:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Pasvorto:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Kolektanta probleminformojn" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Kolektado de informoj pri la problemo" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "La kolektitaj informoj povas esti senditaj al la programistoj por plibonigi " "la aplikaĵon. Tio povas daŭri kelkajn minutojn." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Alŝutanta probleminformojn" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Raporti problemon..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Raporti misfunkcion al la programistoj" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "Instali kroman pakaĵon en la provejon (plurfoje specifeblas)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Via sistemo povas nun nestabiliĝi kaj eble ĝi devas esti restartigata" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Ne meti la novajn spurojn en la raporto sed sendi ilin al 'stdout'." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Startigi dialogan gdb-seancon kun la nekropsio de la raporto (-o estas " "ignorata; ne reskribas raporton)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Konservi la modifitan raporton al la indikita dosiero anstataŭ ol ŝanĝi la " "originalan raporton." #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Forigi la nekropsion de la raporto por regenero de la stak-spurado" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Transpasi CoreFile de raporto" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Transpasi ExecutablePath de raporto" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Transpasi ProcMaps de raporto" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Refari pakaĵinformojn de raporto" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Fari provizoran provejon kaj elŝuti/instali en ĝin la necesajn pakaĵojn kaj " "sencimigajn simbolojn; sen ĉi tiu opcio estas supozate, ke la necesaj " "pakaĵoj kaj sencimigaj simboloj jam troveblas en la sistemo. La argumento " "ligas al la pakaĵsistema baza dosierujo por agordoj; se vi specifas " "\"system\", ĝi uzos la sistemagordajn dosierojn, sed tiam ĝi havos nur la " "eblon por retrovi kolapsojn okazitajn sur la nune funkcianta sistemo." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Raporti progreson de elŝutado/instalado dum instalado de pakaĵoj en la " "provejon." #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Antaŭmeti tempindikojn al protokolmesaĝoj. Por komandoj" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Kaŝmemora dosierujo por pakaĵoj elŝutitaj en la provejo" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Pado al la dosiero kun la aŭtentigaj informoj por la kolapsdatumbazo. Tio " "estas uzata dum specifigo de kolaps-identigilo por alŝuti la respuritajn " "stakspurojn (nur se nek -g, nek -o, nek -s estas specifitaj)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Montri respuritajn stakspurojn kaj peti konfirmon antaŭ ol sendi ilin al la " "kolapsdatumbazo." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Pado al la duobligita sqlite-datumbazo (apriore: neniu kontrolo por " "duobligoj)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Ĉu sendi ĉi tiujn kiel kunsendaĵoj? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Ŝajnas, ke ĉi tiu pakaĵo ne estas korekte instalita" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ĉi tio ne estas oficiala pakaĵo de %s. Bonvole forigu ĉiun ajn pakaĵon de " "ekstera liveranto kaj provu denove." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Via sistemo enhavas kelkajn malaktualajn pakaĵojn. Bonvole aktualigu la " "sekvajn pakaĵojn kaj kontrolu ĉu la problemo ankoraŭ okazas:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "nekonata programaro" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Bedaŭrinde la programaro \"%s\" fermiĝis neatendite" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problemo en %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Via komputilo ne havas sufiĉe da libera memoro por analizi la problemon kaj " "sendi raporton al la evoluigantoj." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Nevalida problemraporto" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Vi ne rajtas aliri ĉi tiun problemraporton." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Eraro" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Spaco en disko ne sufiĉas por trakti ĉi tiun raporton." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Neniu pakaĵo indikita." #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "Vi devas indiki pakaĵon aŭ PID. Vidu --help por pliaj informoj." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permeso malaprobita" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "La indikita procezo ne apartenas al vi. Bonvole rulu ĉi tiun programaron " "kiel posedanto de la procezo aŭ kiel ĉefuzanto." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Nevalida PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "La indikita procesa identigilo ne apartenas al iu programaro." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "La skripto por analizi problemon %s ne trovis koncernatan pakaĵon" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Pakaĵo %s ne ekzistas" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "La raporto ne kreeblas" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Ĝisdatiganta problemraporton" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Vi ne estas aŭtoro aŭ aboninto de ĉi tiu problemraporto aŭ la raporto estas " "duoblaĵo aŭ jam fermita.\n" "\n" "Bonvole kreu novan raporton per \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Vi ne estas la aŭtoro de ĉi tiu problemraporto. Estas multe pli facile marki " "eraron kiel duoblaĵon de alia eraro ol transmeti viajn komentojn kaj " "aldonaĵojn al nova eraro.\n" "\n" "Ni rekomendas, ke vi kreu novan problemraporton per \"apport-bug\" kaj metu " "komenton al ĉi tiu raporto, komentante pri la nova raporto.\n" "\n" "Ĉu vi vere volas daŭrigi?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Neniu aldonaj informoj estis kolektitaj." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Kiuspecan problemon vi volas raporti?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "nekonata simptomo" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "La simptomo \"%s\" ne estas konata." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Ferminte ĉi tiun mesaĝon, bonvole alklaku aplikaĵfenestron por raporti " "problemon pri ĝi." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop fiaskis en determinado de procesidentigilo de la fenestro" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <numero de raporto>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Specifi pakaĵnomon." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Aldoni plian markon al la raporto. Tio plurfoje specifeblas." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opcioj] [simptomo|pid|pakaĵo|dosierpado de programaro|dosiero " ".apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Startigi en problem-raporta reĝimo. Tio postulas --package kaj laŭvola --pid " "aŭ nur procesidentigilon. Se neniu el la du estas indikita, listo de konataj " "simptomoj aperas. (Ĉi tiu reĝimo validas aŭtomate, se nur unu argumento " "estas specifita.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Alklaku sur fenestro kiel celo, por sendi problemraporton." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Startigi en redakta reĝimo. La opcio --package aldoneblas." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Sendu problemraporton pri simptomoj. (Ĉi tiu regimo validas aŭtomate, se la " "nomo de la simptomo estas donita kiel sola argumento.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Specifu pakaĵnomon en reĝimo --file-bug. Ĉi tio estas opcia se --pid estas " "specifita. (Ĉi tiu regimo validas aŭtomate, se la nomo de la pakaĵo estas " "donita kiel sola argumento.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Specifi rulatan programaron en reĝimo --file-bug. Se ĝi estas specifita, la " "cimraporto enhavos pli da informoj. (Ĉi tiu regimo validas aŭtomate, se pid " "estas donita kiel sola argumento.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Raportu la kolapson el donita dosiero .apport aŭ .crash anstataŭ ol tiuj " "okazantaj en %s. (Ĉi tiu regimo validas aŭtomate, se la dosiero estas " "donita kiel sola argumento.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "En cimpleniga reĝimo, konservi la kolektitajn informojn en dosieron anstataŭ " "ol raporti ĝin. Ĉi tiu dosiero povas poste esti raportata per alia maŝino." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Eligi la numeron de versio de Aporto." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Tio rulos apport-retrace en fenestro de terminalo por testi la kolapson." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Ruli seancon de gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Ruli seancon de gdb sen elŝuti sencimigsimbolojn" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Ĝisdatigi %s kun tute simbolika staka spuro" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Ĉi tiu raporto apartenas al ne plu instalita programaro." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "La problemo okazis kun la programaro %s, kiu ŝanĝis ekde la kolapso okazis." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "La raporto estas damaĝita kaj ne povas esti traktata." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "La raporto apartenas al pakaĵo, kiu ne estas instalita." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Eraro okazis dum klopodado por procezi ĉi tiun raporton de problemo:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Ne eblis eltrovi la nomon de la pakaĵo aŭ de la fonta pakaĵo." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Ne eblis startigi retfoliumilon." #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Ne eblis starti retfoliumilo por malfermi %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Bonvole indiku viajn informojn pri la uzantkonto por la sistemo de " "cimspurado por %s." #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Reta problemo" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Ne eblas konekti al la datumbazo pri kolapsoj. Bonvole kontrolu vian " "retkonekton." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memoro elĉerpita" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "Via sistemo ne havas sufiĉe da memoro por trakti la kolapsraporton." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Ne eblas raporti la problemon:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Jam konata problemo." #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ĉi tiu problemo estis jam raportita en la raporto montrata en la " "retfoliumilo. Bonvole kontrolu, ĉu vi povas aldoni pliajn eble utilajn " "informojn por la evoluigantoj." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ĉi tiu problemo estas jam raportita al programistoj. Dankon!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "La vekiĝprocezo paraliziĝis tuj antaŭ la fino. Aspektis kiel ĝi normale " "kompletiĝis." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Premu klavon por daŭrigi..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Kion vi ŝatus fari? Viaj ebloj estas:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Bonvole ekektu (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bajtoj)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Post sendo de la problem-raporto, bonvole plenigu la formularon en la\n" "fenestro de la retfoliumilo, kiu aŭtomate malfermiĝos." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Sendi raporton (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "Lok&e testi" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Montri raporton" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "&Konservi raportdosieron por poste sendi ĝin aŭ kopii aliloken." #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Nuligi kaj &ignori ontajn kolapsojn de ĉi tiu programarversio." #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Nuligi" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Problemraporta dosiero:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Konfirmi" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Eraro: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "La kolektitaj informoj povas esti senditaj al la evoluigantoj por\n" "plibonigi la aplikaĵon. Tio povas daŭri kelkajn minutojn." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "La kolektitaj informoj estas sendataj al la sistemo de cimspurado.\n" "Tio povas daŭri kelkajn minutojn." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Farite" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "nenio" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Elektita: %s. Pluraj ebloj:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Ebloj:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Pado al la dosiero (presi \"enigu\" por nuligi):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Dosiero ne ekzistas." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Ĉi tio estas dosierujo." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Por daŭrigi vi devas viziti la sekvan URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Vi povas nun lanĉi retfoliumilon aŭ kopii la URL en retfoliumilo en alia " "komputilo." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Nun lanĉi retfoliumilon" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Ne restas netrakitaj kolapsraportoj. Indiku --help por vidi pliajn informojn." #~ msgid "Content of the report" #~ msgstr "Enhavo de la raporto" #~ msgid "_Report Problem..." #~ msgstr "_Raporti problemon..." #~ msgid "Package problem" #~ msgstr "Pakaĵo-problemo" #~ msgid "Kernel problem" #~ msgstr "Kerno-problemo" #~ msgid "_Send Report" #~ msgstr "_Sendi raporton" #~ msgid "&Report Problem..." #~ msgstr "&Raportu problemon..." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Se vi ne estis faranta ion konfidencan (enigante pasvorton aŭ aliajn\n" #~ "privatajn informojn), vi povas helpi plibonigi la aplikaĵon raportante\n" #~ "la problemon." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s fermiĝis neatendite je %s je la %s." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Via sistemo suferis seriozan problemon pri la kerno." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Vi povas helpi al la evoluigantoj korekti la pakaĵon, se vi raportas la " #~ "problemon." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Vi povas helpi al la evoluigantoj korekti la problemon, raportante ĝin." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Sendu kompletan raporton (rekomendite, %s)" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Ne eblis instali aŭ aktualigi la pakaĵon \"%s\"." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Kompleta raporto (rekomendita; %s)" #~ msgid "Application problem" #~ msgstr "Aplikaĵa problemo" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Pardonu, instalado aŭ aktualigo de " #~ "pakaĵo \"%s\" fiaskis.</span>" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Ĉu sendi problem-raporton al la evoluigantoj?</b></big>\n" #~ "\n" #~ "Post sendo de la raporto bonvolu plenigi la formularon en la aŭtomate " #~ "aperonta krozila fenestro." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Sendu &reduktitan raporton (se via retkonekto estas malrapida; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Reduktita raporto (se via retkonekto estas malrapida; %s)" #~ msgid "Restart _Program" #~ msgstr "Relanĉu la &programon" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignoru estontajn kraŝojn de tiu ĉi program-versio" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "Erara nombro de la argumentoj; uzu --help por ricevi koncizan helpon." #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Tio ĉi forigos kelkajn grandajn erojn el la raportaĵo. Tiuj estas tre utilaj " #~ "por programistoj por povi sencimigi la problemon. Sed eble tiel la alŝutaĵo " #~ "estos tro granda se vi havas malrapidan retkonekton." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Se vi ne faris ion konfidencan (entajpi pasvortojn aŭ aliajn privatajn " #~ "informojn), vi povas helpi plibonigi la aplikaĵon raportante la problemon." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [opcioj] <apport-problemraportaĵo | kolapsa ID>" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Ĉi tio ne estas aŭtentika pakaĵo de %s." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Pardonu, la aplikaĵo %s fermiĝis neatendite." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "Tio okazis dum antaŭa suspendo kaj preventis, ke ĝi bone vekiĝis." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "Tio okazis dum antaŭa dormeto kaj preventis, ke ĝi bone vekiĝis." #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "vi aŭ necesas fari lokan operacion (-s, -g, -o) aŭ provizi aŭtentigdosieron " #~ "(--auth); vidu --help por mallonga gvidilo" ����������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/es.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000142717�14416106601�011452� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Spanish translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n" "Language-Team: Spanish <es@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: es\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Cancelar" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Aceptar" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Informe de error" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Lo sentimos, ocurrió un error interno.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Si sigue teniendo problemas, intente reiniciar el equipo." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Enviar un informe de error para ayudar a corregir este problema" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorar problemas futuros de esta versión del programa" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Mostrar detalles" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examinar localmente" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Dejar cerrada" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continuar" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Recopilando información del problema</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "La información que se está recopilando puede ayudar a los desarrolladores a " "resolver el problema que va a notificar." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Enviando la información del problema" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Enviando información del problema</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "La información recopilada está enviándose al sistema de seguimiento de " "errores. Esto puede tardar unos minutos." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Archivo de fallo de Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(datos binarios)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Lo sentimos, la aplicación %s se detuvo inesperadamente." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "%s se cerró inesperadamente." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Lo sentimos, %s ha experimentado un error interno." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "¿Quiere enviar un informe del problema a los desarrolladores?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Enviar" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Forzar cierre" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Reabrir" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "La aplicación %s ha dejado de responder." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "El programa «%s» ha dejado de responder." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paquete: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Lo sentimos, ha ocurrido un problema al instalar el software." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "La aplicación %s ha experimentado un error interno." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "La aplicación %s se cerró inesperadamente." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorar problemas futuros de este tipo" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Ocultar detalles" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Uso: %s <informe> <directorio objetivo>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "El directorio de destino existe y no está vacío." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nombre de usuario:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Contraseña:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Recopilando información del problema" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Recopilando información del problema" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "La información recopilada se puede enviar a los desarrolladores para mejorar " "la aplicación. Esto puede tardar algunos minutos." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Enviando información del problema" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Recopilar información del sistema" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Se necesita autenticación para recopilar información del sistema para " "informar de este problema" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Informes de problemas del sistema" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Escriba su contraseña para acceder a los informes de problemas de programas " "del sistema" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Informar de un problema..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Notificar un mal funcionamiento a los desarrolladores" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Consulte la página de man para más detalles." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "especifica el nombre del archivo de registro generado por valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "reusar un directorio de pruebas (SDIR) creado anteriormente o, si no existe, " "crearlo" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "no crear ni reusar un directorio de pruebas para símbolos de depuración " "adicional, sino depender únicamente de los símbolos de depuración instalados." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "reutilizar un directorio caché (REDC) creado previamente, si no existe, " "crearlo" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "informar del el avance en la descarga/instalación al instalar paquetes en el " "sistema de pruebas" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "el ejecutable que corre bajo el complemento memcheck valgrind en la " "detección de fugas de memoria" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Instalar un paquete adicional en la caja de arena (puede especificarse " "varias veces)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Error: %s no es un ejecutable. Parando." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Su sistema puede volverse inestable y puede que necesite reiniciarlo." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "No añadir los rastros nuevos en el informe, sino escribirlos en la salida " "estándar." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Iniciar una sesión interactiva de gdb con el volcado de memoria del informe " "(-o ignorado; no se reescribe el informe)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Escribir el informe modificado en el archivo dado, en vez de cambiar el " "informe original" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Eliminar del informe el volcado de memoria tras la regeneración de la traza " "de la pila" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Sobrescribir los informes de CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Sobrescribir los informes de ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Sobrescribir los informes de ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Reconstruir la información de paquetes del informe" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Construye una caja de arena temporal y descarga/instala los paquetes " "necesarios y los símbolos de depuración; sin esta opción se asume que los " "paquetes necesarios y los símbolos de depuración ya están instalados en el " "sistema. El argumento apunta al directorio de sistema de paquetes de " "configuración de base, si se especifica «system», utilizará los archivos de " "configuración del sistema, pero solo será capaz de volver sobre los errores " "que ocurrieron en la ejecución actual." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Informar del progreso de la descarga/instalación de paquetes en la caja de " "arena" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Anteponer marcas de tiempo para registrar mensajes, para su operación en lote" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Crear y usar repositorios de terceros de orígenes especificados en los " "informes" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Almacenar directorios para paquetes descargados en la caja de arena" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Directorio para paquetes desempacados. Las ejecuciones futuras asumirán que " "cualquier paquete ya descargado se extrae también a esta caja de arena." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Ruta a un archivo con la información de autenticación a la base de datos de " "errores. Esto se usa cuando especifica un ID de error para cargar una pila " "de rastros reconstituidos (solo si no se especifican ni -g, ni -o ni -s" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Mostrar la pila de rastros reconstituidos y pedir confirmación antes de " "enviarlos a la base de datos de errores" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Ruta a la base de datos sqlite duplicada (por omisión: sin comprobación de " "duplicado)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "No se puede usar -C sin -S. Parando." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "¿Está de acuerdo en enviar esto como adjuntos? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Este paquete no parece haberse instalado correctamente" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Este no es un paquete oficial de %s. Desinstale cualquier paquete de " "terceros e inténtelo de nuevo." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Tiene algunos paquetes instalados con versiones obsoletas. Actualice los " "siguientes paquetes y compruebe si el problema persiste:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programa desconocido" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "El programa «%s» se cerró inesperadamente" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problema en %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Su equipo no tiene memoria libre suficiente para analizar el problema " "automáticamente y enviar un informe a los desarrolladores." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Informe de problema no válido" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "No tiene permitido acceder a este informe de problema." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Error" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "No hay suficiente espacio de disco disponible para procesar este informe." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "No se especificó ningún paquete" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Necesita especificar un paquete o un PID. Consulte --help para más " "información." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permiso denegado" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "El proceso especificado no le pertenece. Ejecute este programa como " "propietario del proceso o como superusuario." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID no válido" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "El ID de proceso especificado no pertenece a ningún programa." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "El script de síntomas %s no determinó ningún paquete afectado" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "El paquete %s no existe" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "No se puede crear el informe" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Informe de problema con actualización" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Usted no es el informador o suscriptor de este informe de problema, o el " "informe es un duplicado o ya está cerrado.\n" "\n" "Cree un informe nuevo usando «apport-bug»." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Usted no informó de este problema. Es mucho más fácil marcar un error como " "duplicado de otro que trasladar sus comentarios y archivos adjuntos a un " "nuevo error.\n" "\n" "Por lo tanto, le recomendamos que genere un nuevo informe de error " "utilizando «apport-bug» y haga un comentario en este error informando del " "que ha generado.\n" "\n" "¿Está seguro de que quiere continuar?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "No se ha recopilado información adicional." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "¿De qué tipo de problema quiere informar?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Síntoma desconocido" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "El síntoma «%s» es desconocido." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Después de cerrar este mensaje pulse en una ventana de aplicación para " "informar acerca de un problema con ella." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop falló al determinar la ID de proceso de la ventana" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <número del informe>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Especifique el nombre del paquete." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Añade una etiqueta adicional al informe. Se puede especificar varias veces." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opciones] [síntomas|pid|paquete|ruta al programa|archivo .apport o " ".crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Comenzar en el modo de notificación de errores. Requiere --package y un --" "pid opcional, o sólo un --pid. Si no se proporciona ninguno, muestra una " "lista de síntomas conocidos. (Implícito si se proporciona un único " "argumento.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" "Pulse una ventana como objetivo para rellenar un informe de problema." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Iniciar en modo de actualización de errores. Admite un parámetro --package " "opcional." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Rellenar un informe de error acerca de un síntoma. (Implícito si se " "proporciona un nombre de síntoma como único argumento)." #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Especifique el nombre del paquete en el modo --file-bug. Esto es opcional si " "un --pid es especificado. (Implícito si se ha dado un nombre de paquete como " "un único argumento)." #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Especificar un programa ejecutándose en modo --file-bug. Si se especifica, " "el informe de error contendrá más información. (Implica si pid se da como un " "argumento solo.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "El pid proporcionado es una aplicación colgada." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Informar del fallo a partir de los archivos .apport o .crash indicados en " "lugar de los pendientes en %s. (Implícito si se indica el archivo como único " "argumento.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "En el modo de relleno del error, guarda la información recopilada en un " "archivo en vez de enviarla. Este archivo se puede enviar más tarde desde un " "equipo diferente." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Mostrar el número de versión de Apport" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Esto ejecutará apport-retrace en una terminal para examinar la falla." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Ejecutar una sesión gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Ejecutar una sesión gdb sin descargar símbolos de depuración" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Actualizar %s con una pila de seguimiento completamente simbólica" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Este informe de problema aplica a un programa que ya no está instalado." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "El problema ocurrió con el programa %s, que ha sido modificado desde esa vez." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "El informe del problema está dañado y no puede procesarse." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "El informe proviene de un paquete no instalado." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Ocurrió un error al intentar procesar este informe de problema:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "No se pudo determinar el nombre del paquete binario o fuente." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "No se puede arrancar el navegador web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "No se puede arrancar el navegador web para abrir %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Introduzca la información de su cuenta para el sistema de seguimiento de " "errores de %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problemas con la red" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "No es posible la conexión con la base de datos de errores, por favor, " "verifique su conexión a Internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memoria agotada" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Su sistema no tiene la memoria suficiente para procesar este informe de " "fallo." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "El problema no puede notificarse:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problema ya conocido" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Este problema ya ha sido comunicado previamente en el informe de fallo " "mostrado en el navegador web. Por favor, compruebe si puede añadir cualquier " "información adicional que pudiera resultar de utilidad a los desarrolladores." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ya se ha informado de este problema a los desarrolladores. ¡Gracias!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "El evento se produjo durante una suspensión anterior y evitó que el sistema " "se reanudara adecuadamente." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "El evento se produjo durante una hibernación anterior y evitó que el sistema " "se reanudara adecuadamente." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "El proceso de reanudación se colgó muy cerca del final y parecerá que se " "completó normalmente." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Pulse una tecla para continuar..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "¿Qué desea hacer? Sus opciones son:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Por favor elija (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Después de que se haya enviado el informe del problema, por favor,\n" "complete el formulario que se abrirá automáticamente en su navegador." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Enviar informe (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examinar localmente" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Ver informe" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Guardar el informe para enviarlo luego, o para copiarlo a algún otro lugar." #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Cancelar e &ignorar errores futuros de esta versión del programa" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Cancelar" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Archivo del informe del problema:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirmar" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Error: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "La información recopilada puede enviarse a los desarrolladores para mejorar " "la\n" "aplicación. Esto puede tardar unos minutos." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "La información recopilada está enviándose al sistema de seguimiento de " "errores.\n" "Esto puede tardar unos minutos." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Hecho" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ninguno" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Seleccionado: %s. Varias opciones:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Opciones:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Ruta al archivo (Intro para cancelar):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "El archivo no existe." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Esto es un directorio." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Para continuar, visite la siguiente URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Puede lanzar un navegador ahora, o copiar esta URL a un navegador en otro " "equipo." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Lanzar un navegador ahora" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "No hay informes de errores pendientes. Intente --help para más información." #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ignorar errores futuros en esta versión del programa" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Una vez se haya enviado el informe del problema, complete el formulario que " #~ "aparecerá automáticmente en el navegador." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Enviar un informe &reducido (conexiones lentas a Internet; %s)" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Si lo notifica, ayudará a los desarrolladores a resolver el problema." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Ha fallado la instalación o la actualización del paquete «%s»." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Informe completo (recomendado; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>¿Enviar informe del problema a los desarrolladores?</b></big>\n" #~ "\n" #~ "Una vez se haya enviado el informe del problema, rellene el formulario que " #~ "aparecerá en la ventana del navegador (que se abrirá automáticamente)." #~ msgid "Application problem" #~ msgstr "Problema en la aplicación" #~ msgid "&Details..." #~ msgstr "&Detalles..." #~ msgid "_Send Report" #~ msgstr "_Enviar informe" #~ msgid "Generic error" #~ msgstr "Error genérico" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s se ha cerrado de forma inesperada en %s a %s." #~ msgid "Restart _Program" #~ msgstr "Reiniciar el _programa" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Enviar el informe completo (recomendado; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Informe reducido (conexión lenta a Internet; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorar fallos futuros de esta versión del programa" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Esto eliminará algunos elementos grandes del informe. Éstos son muy útiles " #~ "para que los desarrolladores depuren el problema, pero pueden resultarle muy " #~ "grandes para enviarlos si tiene una conexión lenta a Internet." #~ msgid "&Send" #~ msgstr "&Enviar" #~ msgid "Kernel problem" #~ msgstr "Problema en el núcleo" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Puede ayudar a los desarrolladores a corregir el paquete informando del " #~ "problema." #~ msgid "Content of the report" #~ msgstr "Contenido del informe" #~ msgid "Package problem" #~ msgstr "Problema en el paquete" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Este no es un paquete %s genuino" #~ msgid "_Report Problem..." #~ msgstr "Info_rmar del problema..." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Lo sentimos: %s se ha cerrado inesperadamente" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Si no estaba haciendo nada confidencial (como introducir contraseñas u\n" #~ "otra información privada), puede informar del problema para ayudar a\n" #~ "mejorar la aplicación." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Si no estaba haciendo nada confidencial (como introducir contraseñas u otra " #~ "información privada), puede informar del problema para ayudar a mejorar la " #~ "aplicación." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Esto ocurrió durante una suspensión anterior y le impidió reanudarse " #~ "adecuadamente." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Esto ocurrió durante una hibernación anterior y le impidió reanudarse " #~ "adecuadamente." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [opciones] <informe apport del problema | ID del fallo>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "número incorrecto de argumentos use --help para una breve ayuda" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "tampoco necesita realizar una operación local (-s,-g,-o) o suministrar un " #~ "archivo de autentificación (--auth); vea --help para una pequeña ayuda" #~ msgid "Send this data to the developers?" #~ msgstr "¿Enviar estos datos a los desarrolladores?" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Lo sentimos, falló la instalación o " #~ "actualización del paquete «%s».</span>" #~ msgid "Restart &Program" #~ msgstr "R&einiciar el programa" #~ msgid "&Report Problem..." #~ msgstr "&Informar problema..." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Su sistema ha encontrado un problema serio del núcleo." #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Lo sentimos: el programa «%s» se ha cerrado inesperadamente." #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Lo sentimos: %s se ha cerrado inesperadamente." #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Lo sentimos: el paquete «%s» no se pudo instalar o actualizar." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Lo sentimos, la aplicación %s se ha cerrado de manera inesperada." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "El sistema puede volverse inestable y necesitar reiniciarse." �������������������������������������������������apport-2.20.11/po/et.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000121546�14416106601�011450� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Estonian translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2013-08-28 23:23+0000\n" "Last-Translator: olavi tohver <Unknown>\n" "Language-Team: Estonian <et@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: et\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Vabandust, ilmnes sisemine viga .</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Näita üksikasju" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Jätka" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Probleemi kirjeldavate andmete kogumine</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Kogutakse informatsiooni, mis võib aidata arendajatel probleemi kõrvaldada." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Probleemi kirjeldava teabe üleslaadimine" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Probleemi kirjeldava teabe üleslaadimine</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Toimub kogutud info saatmine veajälgimissüsteemile. Selleks võib kuluda mitu " "minutit." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binaarandmed)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Vabandust, rakendus %s peatus ootamatult." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Kas saata arendajatele vearaport?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Saada" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Taaskäivita" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Programm \"%s\" ei vasta enam." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakett: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Vabandust, tarkvara paigaldamisel tekkis viga." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Peida üksikasjad" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Kasutus: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Sihtkataloog on olemas ja ei ole tühi." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Kasutajanimi:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Parool:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Probleemi kirjeldavate andmete kogumine" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Probleemi kirjeldavate andmete kogumine" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Kogutud andmed võib saata arendajatele, et rakenduse saaks parandada. " "Saatmine võib võtta mõned minutid." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Probleemi kirjeldava teabe üleslaadimine" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Süsteemiinfo kogumine" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Probleemist teatamine..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Arendajate teavitamine tõrkest" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Viga: %s ei ole käivitusfail. Katkestan." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Teie süsteem võib nüüd muutuda ebastabiilseks ja võib vajada taaskäivitust." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Kas saata need nagu manuseid? [jah: y /ei: n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Sul on paigaldatud mõned vananenud programmiversioonid. Palun uuenda " "järgnevaid pakettte ja kontrolli, kas probleemid jätkuvad :\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "tundmatu programm" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Vabandust, programm \"%s\" sulgus ootamatult" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Probleem %s ga" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Sinu arvutil ei ole piisavalt vaba mälu probleemi automaatse analüüsi ja " "arendajate teavitamise jaoks." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Ebasobiv vearaport" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Sul puudub ligipääs sellele vearaportile." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Viga" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Vearaporti käsitsemiseks pole piisavalt vaba kettaruumi." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Pakett määramata" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "Sa pead määrama paketi või PID-i. Vaata --help lisainfo jaoks." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Ligipääs keelatud" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Valitud protsess ei kuulu sulle. Palun käivita see programm protsessi " "omaniku või administraatorina." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Vigane PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Protsessi ID ei kuulu ühelegi programmile." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Sümptomiskript %s ei tuvastanud seotud paketti" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Paketti %s ei leitud" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Raportit ei õnnestu luua" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Probleemiraporti uuendamine" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Te ei ole selle probleemi raporteerija ega ka selle probleemi jälgija. " "Raport võib olla duplikaat või juba suletud.\n" "\n" "Palun luua uus raport kasutades \"apport-bug\" käsku." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Täiendavaid andmeid ei kogutud." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Mis liiki veast sa tahad raporteerida?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Tundmatu sümptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Sümptom \"%s\" pole teada." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Probleemist teatamiseks vajuta peale selle sõnumi sulgemist probleemse " "rakenduse aknal." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Täpsusta paketi nimi." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Käivita gdb sessioon" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "See veateade on programmi kohta, mida ei ole enam paigaldatud." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "See vearaport on rikutud ja seetõttu ei ole võimalik seda käsitseda." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Raport kuulub paigaldamata paketile." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Paketi või lähtekoodi paketi nime ei suudetud tuvastada." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Veebisirvija käivitamine ebaõnnestus" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Ole hea ja sisesta oma %s veahalduse kontoandmed" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Probleem võrguühendusega" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Ei saa ühendust krahhide andmebaasiga, palun kontrolli oma internetiühendust." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Mälu ammendatud" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "Sinu arvutil pole piisavalt mälu selle krahhirapordi käsitlemiseks." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Sellest veast ei ole võimalik teatada:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Probleem on varasemast teada" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Sellest probleemist teavitati juba veebisirvijas nähaolevas vearaportis. " "Palun vaata, kas sul on arendajate jaoks olulist informatsiooni, mida lisada." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Jätkamiseks vajutage mõnd klahvi..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Mida sa tahad teha? Sinu võimalused on järgnevad:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Palun vali (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i baiti)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Pärast vearaporti saatmist täida palun vorm automaatselt avanevas " "veebibrauseri aknas." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Saada raport (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Näita raportit" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "&Hoia raportifail alles, et see saata hiljem või kopeerida mujale" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Katkesta ja &ignoreeri edaspidi selle programmi versiooni krahhe" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Loobu" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Vearaporti fail:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "K&innita" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Viga: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Kogutud teabe võib saata arendajatele, et rakendust parandada.\n" "See võib võtta mõne minuti." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Kogutud teave saadetakse veahaldussüsteemi.\n" "See võib võtta mõne minuti." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Valmis" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "puudub" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Valikud:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Faili ei ole." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "See on kataloog." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Jätkamiseks pead külastama järgmist URLi:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Võite nüüd veebilehitseja käivitada, või kopeerida selle URLi mõne teise " "arvuti brauserisse." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Käivitada veebilehitseja nüüd" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "Ootel vearaporteid pole. Proovi --help võtit lisainfo jaoks." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Raporti lõpetamine (soovitatud; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Saada arendajatele raport probleemi kohta?</b></big>\n" #~ "\n" #~ "Kui raport on saadetud, siis palun täida brauseris avanenud ankeet." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Kui sa ei tegelenud millegi konfidentsiaalsega (salasõnade või muu isikliku " #~ "informatsiooni sisestamine), siis võiksid sa rakenduse parandamisele " #~ "probleemist teatamisega kaasa aidata." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Vabandust, programm %s sulgus ootamatult" #~ msgid "Application problem" #~ msgstr "Rakenduse probleem" #~ msgid "_Send Report" #~ msgstr "_Saada raport" #~ msgid "Generic error" #~ msgstr "Üldine viga" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s sulgus ettearvamatult, %s %s" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Saada täisraport (soovitatud; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Lühendatud raport (aeglane võrguühendus; %s)" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Vabandame, %s sulgus ettearvamatult." #~ msgid "Restart &Program" #~ msgstr "Taaskäivita &programm" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Saada &vähendatud raport (aeglane internetiühendus; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Vearaportist eemaldatakse mõningad mahukamad osad. Need osad on tarkvara " #~ "arendajatele vea leidmiseks väga kasulikud, kuid nende üleslaadimine võib " #~ "aeglasema ühenduse korral võtta liiga kaua." #~ msgid "_Report Problem..." #~ msgstr "P_robleemist teatamine" #~ msgid "&Send" #~ msgstr "&Saada" #~ msgid "Kernel problem" #~ msgstr "Kerneli probleem" #~ msgid "Content of the report" #~ msgstr "Raporti sisu" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ignoreeri programmi selle versiooni krahhe edaspidi" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Vabandust, programm \"%s\" sulgus ettearvamatult." #~ msgid "&Report Problem..." #~ msgstr "&Teata probleemist..." #~ msgid "&Details..." #~ msgstr "Ü&ksikasjad..." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Sa võid aidata arendajatel paketti parandada, kui teatad neile veast." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Sa võid aidata arendajatel viga kõrvaldada, kui teatad neile sellest." #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Vabandust, paketi \"%s\" paigaldamine või uuendamine nurjus." #~ msgid "Restart _Program" #~ msgstr "Taaskäivita _programm" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Vabandust, paketi \"%s\" uuendamine " #~ "või paigaldamine ebaõnnestus.</span>" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "See ei ole ehtne %s paigalduspakett" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Teie süsteemis tekkis tõsine kerneli probleem." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Paketi \"%s\" paigaldamine või uuendamine nurjus." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Kui te ei tegelenud millegi isiklikuga (paroolide või muude isiklike andmete " #~ "sisestamine), võid aidata rakenduse arendamisele kaasa, saates vea kohta " #~ "raporti." #~ msgid "Send this data to the developers?" #~ msgstr "Saada need andmed arendajatele?" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "Eira programmi selle versiooni krahhidest teavitamine tulevikus" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "ebakorrektne arv argumente; kasuta kiire abi saamiseks käsku --help" #~ msgid "Package problem" #~ msgstr "Paketi viga" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Pärast vearaporti saatmist olege hea ja täitke vorm, mis avaneb automaatselt " #~ "veebibrauseris." ����������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/eu.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000126112�14416106601�011443� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Basque translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Basque <eu@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: eu\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Errore-txostena" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Barkatu, barne-errore bat gertatu da.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Arazo gehiago aurkitzen badituzu, probatu ordenagailua berrabiaraziz." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Erakutsi xehetasunak" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Aztertu lokalki" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Mantendu itxita" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Jarraitu" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Arazoari buruzko informazioa biltzen</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Berri ematen ari zaren arazoari buruzko informazioa biltzen ari da, " "garatzaileei arazoa konpontzen laguntzeko." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Errorearen inguruko informazioa bidaltzen" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Arazoari buruzko informazioa bidaltzen</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Bildutako informazioa akats-jarraitze sistemara bidalia izaten ari da. " "Minutu batzuk behar izan ditzake." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport kraskatze-fitxategia" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(datu bitarrak)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Barkatu, %s aplikazioa ustekabean gelditu da." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Barkatu, %s ustekabean itxi da." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Barkatu, %s(e)k barne-errore bat izan du." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Arazoaren txosten bat bidali garatzaileei?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Bidali" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Ixtera behartua" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Berrabiarazi" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "%s aplikazioak ez du erantzuten." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "\"%s\" programak ez du erantzuten." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paketea: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Barkatu, arazo bat egon da softwarea instalatzean." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "%s aplikazioak barne-errore bat izan du." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "%s aplikazioa ustekabean itxi da." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Egin ezikusi aurrerantzean mota honetako arazoei" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Ezkutatu xehetasunak" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Erabilera: %s <txostena> <helburu direktorioa>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Jada existitzen da helburu direktorioa, eta ez dago hutsik." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Erabiltzaile-izena:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Pasahitza:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Errorearen inguruko informazioa biltzen" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Bildu sistemaren informazioa" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Autentifikazioa beharrezkoa da errore-txosten honentzako sistemaren " "informazioa biltzeko" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Sistemako arazoaren jakinarazpena" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "Sartu pasahitza sistemako programen arazoen txostenak atzitzeko" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Arazo baten berri eman..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Funtzionamendu oker baten berri eman garatzaileei" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Ezegonkor bilakatu daiteke zure sistema orain eta berrabiarazi beharko " "zenuke." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Ez traza berririk gehitu txostenera, horren ordez, stdout-en idatzi." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "gdb-sesio interaktiboa abiarazi txostenaren nukleoaren memoria-kopiarekin (-" "o ezikusia; ez du txostena berridazten)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Fitxategi zehatz batean gorde txosten aldatua, jatorrizko txostena aldatu " "ordez." #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Txostenaren CoreFile-a ezikusi" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Txostenaren ExecutablePath-a ezikusi" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Txostenaren ProcMaps-a ezikusi" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Txostenaren pakete-informazioa berreraiki" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Paketea ez dela behar bezala instalatu dirudi" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Hau ez da %s(r)en pakete ofiziala. Ezabatu hirugarrengoen paketeak eta " "saiatu berriz." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Zaharkituta pakete batzuk dituzu instalatuta. Mesedez, ondorengo pakete " "hauek eguneratu itzazu eta arazoak hro jarraitzen duen egiaztatu ezazu:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programa ezezaguna" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Lastima, ustekabean itxi da \"%s\" programa" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Arazoa %s-n" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Zure ordenagailuak ez dauka memoria aske nahiko arazoa automatikoki aztertu " "eta garatzaileei txosten bat bidaltzeko." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Arazoaren txosten baliogabea" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Ez daukazu errore-txosten hau eskuratzeko baimenik." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Errorea" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Diskoan ez dago txostena prozesatzeko leku nahikorik libre." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Ez da paketerik zehaztu" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Pakete edo PID bat zehaztu behar duzu. Informazio gehiagorako, ikusi --help." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Baimena ukatuta" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Zehaztutako prozesua ez da zurea. Mesedez, prozesuaren jabe modura edo erro " "modura exekuta ezazu programa hau." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID baliogabea" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Zehaztutako prozesu-IDa ez dagokio inongo programari." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "%s paketea ez da existitzen" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Zu ez zara akatsaren berri eman duen pertsona. Askoz errazagoa da errore-" "txosten bat beste baten bikoiztutzat markatzea zure iruzkin eta eranskinak " "errore-txosten berri batera mugitzea baino.\n" "\n" "Ondoren, gomendatzen dizugu errore-txosten berri bat bidaltzea \"apport-" "bug\" erabiliz eta iruzkin bat uztea errore-txosten horretan zure errore-" "txostena aipatuz.\n" "\n" "Ziur aurrera jarraitu nahi duzula?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Zein arazo-motaren berri eman nahi duzu?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Sintoma ezezaguna" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Ezezaguna da \"%s\" sintoma." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Zehaztu pakete-izena." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [aukerak] [sintoma|pid|paketea|programaren bidea|.apport/.crash " "fitxategia]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Errore-berriemate moduan hasi. Beharrezko da --package eta aukerazkoa --pid, " "edo --pid bakarrik. Ezer ez zehaztuz gero, sintoma ezagunen zerrenda bat " "bistaratzen da. (Inplizitua argumentu bakarra zehaztuz gero.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Hasi erroreak eguneratzeko moduan. Aukerazko --package bat hartu dezake." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Sintoma baten berri emateko txostena bete. (Inplizitua sintomaren izena " "zehaztuz gero argumentu bakar bezala.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Paketearen izena zehaztu --file-bug moduan. Hau opzionala da --pid bat " "zehaztu bada. (Inplizitua pakete-izen bakarra zehaztuz gero argumentu bakar " "bezala.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Zehaztutako .aport edo .crash fitxategi bateko errorearen berri eman, " "%s(e)koen ordez. (Inplizitua fitxategi bat zehaztuz gero argumentu bakar " "bezala.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Apport bertsio-zenbakia erakutsi." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Jadanik instalatuta ez dagoen programa bati dagokio errore-txosten honek." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Txosten hau kalteturik dago eta ezin da prozesatua izan." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Instalatuta ez dagoen pakete bati dagokio txostenak." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Errore bat gertatu da arazo honen txostena prozesatzean:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Ezin izan da paketearen edo jatorrizko paketearen izena zehaztu." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Ezin izan da web-arakatzailea abiarazi" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Ezin izan da web-arakatzailea abiarazi %s irekitzeko." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "%s-ren akats-sistemarako zure kontuaren informazioa sartu ezazu" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Sarearen arazoa" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Ezin kraskatze-datubasera konektatu, zure Internet-konexioa egiaztatu ezazu." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memoriaren agortzea" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Zure sistemak ez dauka kraskatzearen txostena prozesatzeko memoria nahiko." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Ezin da arazoaren berri eman:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Arazoa ezaguna da jadanik" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Jadanik eman da arazo honen berri web-arakatzailearen bidez. Mesedez, " "garatzaileentzat lagungarria izan daitekeen informazio gehiago eman " "dezakezun egiaztatu ezazu." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Amaieratik oso gertu hutsegin du jarraitze-prozesuak, eta egokiro burutu den " "itxura eman ahal izan du." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Edozein tekla sakatu ezazu jarraitzeko..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Zer nahi duzu egin? Aukera hauek dituzu:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Mesedez, hautatu (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Arazoaren txostena bidali ondoren, mesedez, web-arakatzailean\n" "automatikoki irekitako formularioa bete ezazu." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Txostena bidali (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Lokalki aztertu" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "Txostena &ikusi" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "Txostena &gorde geroago bidaltzeko edo beste leku batera kopiatzeko" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Utzi eta baztertu programa bertsio honen kraskatzeak hemendik aurrera" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Utzi" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Errore-txostenaren fitxategia:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Berretsi" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Errorea: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Bildutako informazioa garatzaileei bidali diezaiekezu, aplikazioa\n" "hobetzen laguntzeko. Minutu batzuk behar ditzake honek." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Errore-segimendu sistemara bidaltzen ari da bildutako informazioa.\n" "Minutu batzuk behar ditzake honek." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Eginda" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "batere ez" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Hautatuta: %s. Aukera ugari:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Aukerak:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Fitxategira bidea (\"Entrar\" uzteko):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Fitxategia ez da existitzen." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Direktorioa da hau." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Jarraitzeko, URL hau bisitatu ezazu:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Oraintxe abiarazi dezakezu nabigatzailea, edo URLa kopiatu ezazu beste " "ordenagailu bateko nabigatzailean erabiltzeko." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Oraintxe abiarazi nabigatzailea" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Ez dago txostenik bidaltzeke. Informazio gehiagorako, --help probatu ezazu." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Txosten osoa (gomendatua; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Arazoaren txosten bat bidali garatzailei?</b></big>\n" #~ "\n" #~ "Arazoaren txostena bidali ondoren, mesedez, web-arakatzailean automatikoki " #~ "irekitako formularioa bete." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Ez bazinen ezer konfidentzialik egiten ari (pasahitz bat edo beste " #~ "informazio pribaturik idazten), aplikazioa hobetzen lagundu dezakezu " #~ "arazoaren berri emanez." #~ msgid "Application problem" #~ msgstr "Aplikazioaren arazoa" #~ msgid "_Send Report" #~ msgstr "Txostena _Bidali" #~ msgid "Restart _Program" #~ msgstr "_Programa Berrabiarazi" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Lastima, ezin izan da \"%s\" paketea " #~ "instalatu edo eguneratu.</span>" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Txosten laburra (internet konexio geldoa; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ezikusi programa bertsio honen kraskatzeak" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Honek elementu handi batzuk kenduko ditu txostenetik. Hauek oso baliagarriak " #~ "dira garatzaileentzat arazoa konpontzeko, baina zuk bidaltzeko handiegiak " #~ "izan daitezke, konexio motela badaukazu." #~ msgid "_Report Problem..." #~ msgstr "Arazoaren _Berri eman..." #~ msgid "Kernel problem" #~ msgstr "Kernel arazoa" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Garatzaileei paketea konpontzen lagun diezaiekezu arazoaren berri emanez." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Hau ez da benetako %s pakete bat" #~ msgid "Content of the report" #~ msgstr "Txostenaren edukia" #~ msgid "Package problem" #~ msgstr "Pakete arazoa" #~ msgid "&Report Problem..." #~ msgstr "Arazo baten &Berri eman..." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Zerbait konfidentziala egiten ari ez bazinen (pasahitzak edo halako\n" #~ "informazio pribaturik idazten), aplikazioa hobetzen lagundu dezakezu\n" #~ "arazoaren berri emanez." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s ustekabean itxi da %s(e)an %setan" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Zure sistemak kernelaren arazo larri batekin egin du topo." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Garatzaileei lagun diezaiekezu arazo horren berri emanez." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "Txosten &osoa bidali (gomendatua; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Txosten &murriztua bidali (Internet konexio motelak; %s)" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "\"%s\" paketearen instalazio edo eguneratzeak huts egin du." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Aurreko esekitze batean zehar gertatu da hau, eta ezin izan da egokiro " #~ "jarraitu." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Aurreko hibernazio batean zehar gertatu da hau, eta ezin izan da egokiro " #~ "jarraitu." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [aukerak] <apport problem report | crash ID>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "ekintza lokal bat (-s, -g, -o) burutu edo autentifikazio-fitxategi bat (--" #~ "auth) eskaini behar duzu; --help erabili ezazu laguntza labur bat jasotzeko" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "argumentu kopuru okerra; --help erabili ezazu laguntza labur bat jasotzeko" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Baliteke orain sistema ezegonkor bihurtzea eta berrabiarazi beharra izatea." ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/fa.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077422�14416106601�011431� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Persian translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Persian <fa@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: fa\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/fi.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000135726�14416106601�011443� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Finnish translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Timo Jyrinki <Unknown>\n" "Language-Team: Finnish <fi@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: fi\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Peru" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Ohjelmisto lopetti toimintansa" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Valitettavasti havaittiin sisäinen virhe.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Jos ongelmat jatkuvat, käynnistä tietokone uudelleen." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Auta kehittäjiä korjaamaan tämä ongelma lähettämällä vikailmoitus" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Älä huomioi tämän ohjelmiston kaatumisia jatkossa" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Näytä tiedot" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Tutki paikallisesti" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Sulje sovellus" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Jatka" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Kerätään tietoja ongelmasta</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "Kerätään tietoja ongelman korjaamisen helpottamiseksi." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Lähetetään tiedot ongelmasta" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Lähetetään tietoja ongelmasta</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Kerättyjä tietoja lähetetään vianseurantajärjestelmään. Tämä saattaa kestää " "muutamia minuutteja." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport-kaatumistiedosto" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binääritiedot)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Valitettavasti sovellus %s pysähtyi odottamatta." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Valitettavasti %s sulkeutui odottamatta." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Valitettavasti %s kohtasi sisäisen virheen." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Lähetetäänkö raportti ongelmasta kehittäjille?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Lähetä" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Suljettu väkisin" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Käynnistä uudelleen" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Sovellus \"%s\" ei vastaa." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Ohjelma \"%s\" ei vastaa." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paketti: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Valitettavasti ohjelmistoja asennettaessa ilmeni ongelma." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Sovellus %s kohtasi sisäisen virheen." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Sovellus %s sulkeutui yllättäen." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Jätä huomiotta tulevat vastaavanlaiset ongelmat" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Piilota tiedot" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Käyttö: %s <raportti> <kohdehakemisto>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Kohdehakemisto on jo olemassa, eikä ole tyhjä." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Käyttäjätunnus" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Salasana:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Kerätään tietoja ongelmasta" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Kerätään tietoja ongelmasta" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Kerätty tieto voidaan lähettää kehittäjille ohjelmiston parantamiseksi. Tämä " "voi kestää muutamia minuutteja." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Lähetetään tiedot ongelmasta" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Kerää järjestelmätiedot" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Vikailmoitukseen tarvittavien järjestelmätietojen kerääminen vaatii " "tunnistautumisen" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Järjestelmän ongelmaraportit" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "Anna salasanasi nähdäksesi järjestelmäohjelmien ongelmaraportteja" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Raportoi ongelma" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Raportoi toimintahäiriöstä sovelluksen kehittäjille" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Katso lisätietoja man-sivulta." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "Syötä valgrindin tuottaman log-tiedoston nimi." #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "Käytä uudelleen jo aikaisemmin luotua hiekkalaatikkokansiota (SDIR), tai jos " "sitä ei ole, luo sellainen" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "Älä luo tai käytä uudelleen hiekkalaatikkokansiota ylimääräisiä " "virheenkorjaussymboleja varten, vaan luota vain asennettuihin " "virheenkorjaussymboleihin." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "Lataa ekstrapakkaukset hiekkalaatikkoon (voi kestää pitkään)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Virhe: %s ei ole suoritettava tiedosto. Lopetetaan." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Järjestelmästäsi saattaa tulla epävakaa ja se saattaa tarvita " "uudelleenkäynnistystä." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Älä laita uusia jäljityksiä raporttiin, mutta kirjoita ne stdout:iin." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Aloita interaktiiviinen gdb-istunto raportin ydinvedoksen kanssa (-o jättää " "huomioimatta; ei kirjoita raporttia)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Kirjoita muokattu raportti annetulle tiedostolle alkuperäisen raportin " "muuttamisen sijaan." #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Poista muistivedos raportista pinojäljityksen elvyttämisen jälkeen" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Korvaa raportin CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Korvaa raportin ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Korvaa raportin ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Rakenna raportin Paketti-informaatio uudelleen" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Polku tiedostoon kaatumistietokannan todentamistietojen kanssa. Tätä " "käytetään määritettäessä kaatumistunnistetta ladattaessa jäljitettyä " "pinojälkiä. (vain jos yhtäkään seuraavista ei ole määritetty: -g, -o ja -s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Näytä seuratut pinojäljet ja pyydä vahvistusta ennen niiden lähettämistä " "kaatumistietokantaan." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Polku jäljennös-sqlite-tietokantaan (oletus: ei jälkennöksen tarkistusta)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Et voi käyttää valitsinta -C ilman valitsinta -S. Pysäytetään." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Sopiiko näiden lähettäminen liitteinä? [y/n] (y=kyllä, n=ei)" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Tätä pakettia ei ole asennettu oikein" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Tämä ei ole virallinen %s-paketti. Poista kolmansien osapuolten paketit ja " "yritä sitten uudelleen." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Järjestelmässä on asennettuna joidenkin pakettien vanhentuneita versiota. " "Päivitä seuraavat paketit ja tarkista, uusiutuuko ongelma:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "tuntematon sovellus" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Ikävä kyllä ohjelma \"%s\" sulkeutui yllättäen" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Ongelma osan %s kanssa" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Muistia ei ole vapaana tarpeeksi ongelman automaattiseen analysointiin ja " "virheraportin lähettämiseen." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Virheellinen ongelmaraportti" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Sinulla ei ole lukuoikeuksia tähän ongelmaraporttiin." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Virhe" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Levyllä ei ole tarpeeksi tilaa raportin käsittelyyn." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Pakettia ei ole määritelty" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Paketti tai PID-tunniste on annettava. Katso lisätietoja käyttämällä " "valitsinta --help." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Lupa evätty" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Kyseinen prosessi ei kuulu sinulle. Aja tämä ohjelma prosessin omistajana " "tai pääkäyttäjänä." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID-numero ei kelpaa" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Määritetty prosessin ID-numero ei kuulu kyseiselle ohjelmalle." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Oirekomentosarja %s ei määritellyt vaikuttanutta pakettia" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Pakettia %s ei ole olemassa" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Raporttia ei voida luoda" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Päivitetään ongelmaraporttia" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Et ole tämän ongelman raportoija tai ilmoittanut ongelmasta aikaisemmin; " "ilmoitus on mahdollisesti kaksoiskopio tai se on jo suljettu aikaisemmin.\n" "\n" "Ole hyvä, ja luo uusi raportti käyttäen \"apport-bug\" määrittelyä." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Et ole tämän ongelman raportoija. On helpompaa merkitä ongelma jonkin toisen " "samankaltaisen ongelman kopioksi, kuin siirtää kommenttisi ja liitteesi " "täysin uuteen ongelmaraporttiin.\n" "\n" "Suosittelemme että lähetät uuden ongelmaraportin käyttäen \"apport-bug\" " "määrittelyä ja lisäät tähän ongelmaan kommentin lisäämästäsi uudesta " "ilmoituksesta.\n" "\n" "Haluatko todella jatkaa?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Lisätietoja ei kerätty." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Millainen ongelma raportoidaan?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Tuntematon ongelma" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Ongelmaa \"%s\" ei tunnistettu." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Kun olet sulkenut tämän viestin napsauta sen sovelluksen ikkunaa, johon " "liittyvän virheraportin haluat tehdä." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop ei onnistunut selvittämään ikkunaan ID-tunnistenumeroa" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <raportin numero>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Määritä paketin nimi." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Lisää raporttiin liittyvä tunniste. Tämä voidaan tehdä useampia kertoja." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [valinnat] [ongelma|pid|paketti|ohjelman " "polku|.apport/.kaatumisraportti]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Aloita ohjelmavirheiden kirjaustilassa. Se vaatii --package ja valinnaisen --" "pid:n, tai vain --pid:n. Jos kumpaakaan ei anneta, näytä lista tunnetuista " "oireista. (Epäsuora jos yksi argumentti on annettu.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Napsauta ikkunaa, johon liittyvän virheraportin haluat tehdä" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Aloita ohjelmavirheiden päivitystilassa. Voi ottaa valinnaisen valitsimen --" "package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Arkistoi ohjelmavirheen raportti oireena. (Epäsuora jos oireen nimi on " "annettu vain argumenttina.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Tarkenna paketin nimi --file-bug-tilassa. Tämä on valinnainen jos --pid on " "määritetty. (Epäsuora jos paketin nimi on annettu vain argumenttina.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Annettu pid on ohjelma, joka ei vastaa" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Raportoi kaatuminen annetusta .apport tai .crash-tiedostosta odottavien " "sijaan kohdassa %s. (Epäsuora jos tiedosta on annettu vain argumenttina.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Tulosta Apport-versionumero." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Tämä käynnistää apport-retracen pääteikkunnassa ongelman tutkimiseksi." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Käynnistä gdb sessiossa" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Suorita gdb-istunto ilman virheenjäljityssymbolien lataamista" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Tämä ongelmaraportti kytkeytyy ohjelmaan, joka ei ole enää asennettu." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "Ongelma koskee ohjelmaa %s, joka on muuttunut kaatumisen jälkeen" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Tämä ongelman raportti on vahingoittunut, eikä sitä voida käsitellä." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Raportti liittyy pakettiin, jota ei ole asennettu." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Virhe käsiteltäessä ongelmaraporttia:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Paketin tai lähdekoodipaketin nimeä ei voi määrittää." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Selaimen käynnistäminen epäonnistui" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Verkkoselainta ei saatu käynnistettyä avattaessa sivua %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Ole hyvä ja syötä %s bugi raportointi järjestelmän kirjautumistiedot" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Verkko-ongelma" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Kaatumistietokantaan ei voi yhdistää. Tarkista Internet-yhteyden toimivuus." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Muisti ei riitä" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Järjestelmässäsi ei ole tarpeeksi muistia tämän kaatumisraportin käsittelyyn." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Ongelman raportoiminen ei onnistunut:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Ongelma on jo tiedossa" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Tämä ongelma raportoitiin jo virheraportissa, joka on näkyvissä selaimessa. " "Tarkista, voisitko lisätä joitakin kehittäjiä auttavaa tietoa." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" "Tästä ongelmasta on jo ilmoitettu kehittäjille. Kiitos kuitenkin " "auttamishalustasi!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Aloitettu ajo jumiutui erittäin lähellä loppua ja tulee ilmestymään " "suorittuakseen loppuun normaalisti." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Paina mitä tahansa näppäintä jatkaaksesi..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Kuinka haluat edetä? Vaihtoehdot ovat:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Ole hyvä ja valitse (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i tavua)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Kun raportti ongelmasta on lähetetty, ole ystävällinen ja täytä selaimeesi\n" "automaattisesti aukeava lomake." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Lähetä raportti (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Tutki paikallisesti" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "Tarkastele &raporttia" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Säilytä raporttitiedosto myöhemmin lähetettäväksi tai muualle kopioitavaksi" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Peru ja &jätä jatkossa huomiotta tämän ohjelmaversion kaatumiset" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Peruuta" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Ongelmaraporttitiedosto:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Vahvista" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Virhe: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Kerätyt tiedot voidaan lähettää kehittäjille ohjelman parantamiseksi.\n" "Tähän voi mennä muutama minuutti." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Kerätyt tiedot lähetetään virheseurantajärjestelmään.\n" "Tähän voi mennä muutama minuutti." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Valmis" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ei mitään" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Valittu: %s. Useita valintoja:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Valinnat:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Polku tiedostoon (Enter peruu):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Tiedostoa ei ole olemassa." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Tämä on hakemisto." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Jatkaaksesi sinun tulee käydä seuraavassa URL-osoitteessa:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Voit nyt käynnistää selaimen tai kopioida tämän URL-osoitteen selaimeen " "toisella tietokoneella." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Käynnistä selain nyt" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Ei odottavia kaatumisraportteja. Kokeile --help saadaksesi lisäinformaatiota." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Voit auttaa kehittäjiä korjaaman ongelman ilmoittamalla siitä." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Paketin \"%s\" asennus tai päivitys epäonnistui." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Täydellinen raportti (suositus; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Lähetetäänkö ongelmaraportti sovelluksen kehittäjille?</b></big>\n" #~ "\n" #~ "Ole hyvä ja täytä automaattisesti selaimeen auennut lomake, kun " #~ "ongelmaraportti on lähetetty." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Jos et tehnyt mitään luottamuksellista (syöttänyt salasanoja tai muita " #~ "henkilökohtaisia tietoja), voit auttaa kehittämään ohjelmaa raportoimalla " #~ "ongelmasta." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Ikävä kyllä %s sulkeutui yllättäen" #~ msgid "Application problem" #~ msgstr "Ongelma sovelluksessa" #~ msgid "&Details..." #~ msgstr "&Yksityiskohdat..." #~ msgid "_Send Report" #~ msgstr "_Lähetä raportti" #~ msgid "Generic error" #~ msgstr "Yleinen virhe" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Kun raportti on lähetetty, ole hyvä ja täytä selaimeesi automaattisesti " #~ "aukeava lomake." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Jos et ollut tekemässä mitään luottamuksellista (kuten syöttänyt salasanoja " #~ "tai muuta\n" #~ "henkilökohtaista tietoa), voit auttaa ohjelman kehittämisessä raportoimalla\n" #~ "ongelman." #~ msgid "Restart _Program" #~ msgstr "Uudelleenkäynnistä _ohjelma" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Ikävä kyllä paketin \"%s\" asennus tai päivitys epäonnistui." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Paketin \"%s\" asennus tai päivitys " #~ "epäonnistui.</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Lähetä täydellinen raportti (suositeltavaa; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Pelkistetty raportti (hidas Internet-yhteys; %s)" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Ikävä kyllä %s sulkeutui yllättäen." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Jätä tämän ohjelmaversion kaatumiset huomiotta jatkossa" #~ msgid "Restart &Program" #~ msgstr "Käynnistä &ohjelma uudelleen" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Lähetä &suppea raportti (hitaille Internet-yhteyksille; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Tämä poistaa joitain isoimpia osuuksia raportista. Osuudet ovat hyödyllisiä " #~ "ohjelman kehittäjille ongelman selvittämisessä mutta et välttämättä halua " #~ "odottaa niiden lähettämistä, jos Internet-yhteytesi on hidas." #~ msgid "&Report Problem..." #~ msgstr "&Raportoi ongelma..." #~ msgid "_Report Problem..." #~ msgstr "_Raportoi ongelma..." #~ msgid "&Send" #~ msgstr "&Lähetä" #~ msgid "Kernel problem" #~ msgstr "Ongelma käyttöjärjestelmän ytimessä" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "Älä huomioi tämän ohjelmaversion kaatumisia jatkossa" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "Voi auttaa kehittäjiä korjaamaan ongelman raportoimalla ongelmasta." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Tämä ei ole alkuperäinen %s-paketti" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Ikävä kyllä ohjelma \"%s\" sulkeutui yllättäen." #~ msgid "Content of the report" #~ msgstr "Raportin sisältö" #~ msgid "Package problem" #~ msgstr "Ongelma paketissa" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Järjestelmässä tapahtui vakava ydinongelma." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Tämä tapahtui viimeisen keskeytyksen aikana ja esti sitä jatkamasta " #~ "asianmukaisesti." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Tämä tapahtui viimeisen horrostilan aikana ja esti sitä jatkamasta " #~ "asianmukaisesti." #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "virheellinen lukumäärä argumentteja; käytä --help:iä saadaksesi lyhyesti apua" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "sinun tarvitsee tehdä joko paikallinen operaatio (-s, -g, -o) tai toimittaa " #~ "varmennustiedosto (--auth); katso --help saadaksesi lyhyesti apua" #~ msgid "Send this data to the developers?" #~ msgstr "Lähetetäänkö nämä tiedot kehittäjille?" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s sulkeutui yllättäen %s %s." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [valinnat] <tasaa ongelmaraportti | kaatumistunniste>" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Valitettavasti sovellus %s sulkeutui odottamatta." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Järjestelmäsi saattaa tulla epävakaaksi ja vaatia uudelleenkäynnistystä." ������������������������������������������apport-2.20.11/po/fr.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000142425�14416106601�011446� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# French translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-12-23 11:09+0000\n" "Last-Translator: Anne017 <Unknown>\n" "Language-Team: French <fr@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: fr\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Annuler" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Accepter" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Rapport de plantage" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Désolé, une erreur interne s'est produite !</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "En cas de nouveaux problèmes, essayez de redémarrer votre ordinateur." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Envoyer un rapport d'anomalie pour aider à résoudre ce problème" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorer les problèmes futurs de cette version du programme" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Afficher les détails" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examiner en local" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Laisser fermé" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continuer" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Collecte des informations liées au problème</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Des informations sont collectées qui pourraient aider les développeurs à " "corriger le problème que vous rapportez." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Téléversement des informations liées au problème" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Téléversement des informations liées au problème</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Les données collectées sont transmises au système de suivi des bogues. Ceci " "peut prendre quelques minutes." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Fichier de plantage Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(données binaires)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Désolé, l'application %s s'est arrêtée de façon inattendue." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Désolé, %s a quitté de façon inattendue." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Désolé, %s a rencontré une erreur interne." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Envoyer un rapport d'anomalie aux développeurs ?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Envoyer" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Fermée de force" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Relancer" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "L'application %s a cessé de répondre." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Le programme « %s » a cessé de répondre." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paquet : %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Désolé, une erreur est survenue lors de l'installation du logiciel." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "L'application %s a subi une erreur interne." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "L'application %s a quitté de façon inattendue." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorer les prochains problèmes de ce genre" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Masquer les détails" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Utilisation : %s <rapport> <dossier cible>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Le dossier de destination existe déjà et n'est pas vide." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nom d'utilisateur :" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Mot de passe :" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Collecte des informations liées au problème" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Collecte des informations liées au problème" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Les informations collectées peuvent être envoyées aux développeurs pour " "améliorer l'application. Cela peut prendre quelques minutes." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Téléversement des informations liées au problème" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Collecter des informations à propos du système" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Une authentification est nécessaire pour collecter l'information système " "requise pour ce rapport de bogue" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Rapports de problèmes système" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Veuillez saisir votre mot de passe pour accéder à des rapports de problèmes " "de programmes système" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Signaler un problème..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Signaler un dysfonctionnement aux développeurs" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Voir la page de manuel pour plus de détails." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "spécifier le nom du fichier journal produit par valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "réutiliser un répertoire de bac à sable (« sandbox ») (SDIR) créé " "précédemment ou, s'il n'existe pas, le créer" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "ne pas créer ou réutiliser un répertoire de bac à sable pour des symboles " "additionnels de débogage, mais s'appuyer seulement sur les symboles de " "débogage installés." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "réutiliser un répertoire de cache (CDIR) précédemment créé ou, s'il n'existe " "pas, le créer" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "afficher la progression du téléchargement et de l'installation lors de " "l'installation de paquets dans le bac à sable (« sandbox »)" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "l'exécutable lancé dans l'outil de vérification de la mémoire de valgrind " "pour détecter une fuite de mémoire." #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Installer un paquet supplémentaire dans le bac à sable (peut être spécifié " "plusieurs fois)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Erreur : %s n'est pas un exécutable. Arrêt." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Votre système peut maintenant devenir instable et nécessiter un redémarrage." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Ne pas placer les nouvelles « traces » dans le rapport, mais les écrire sur " "la sortie standard." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Démarrer une session gdb interactive avec l'image système du rapport (-o " "ignoré ; ne réécrit pas le rapport)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Écrire le rapport modifié dans le fichier donné au lieu de changer le " "rapport original." #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Supprimer l'image système du rapport après régénération de la trace de la " "pile" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Écraser le fichier core du rapport" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Écraser le chemin de l'exécutable du rapport" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Écraser la mappe des processus du rapport" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Reconstruire les informations sur les paquets du rapport" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Mettre en place un bac à sable temporaire et y télécharger/installer les " "paquets et les symboles de débogage nécessaires ; sans cette option, les " "paquets et les symboles de débogage nécessaires seront supposés être déjà " "installés sur le système. L'argument pointe vers le dossier de configuration " "de base du système de création de paquets ; si vous spécifiez « system », " "les fichiers de configuration du système seront utilisés, mais seuls les " "plantages de la version en cours d'exécution pourront être tracés." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Signaler l'avancement du téléchargement/de l'installation lors de " "l'installation de paquets dans le bac à sable." #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Préfixer un horodatage aux messages de journal, pour un traitement par lots" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Créer et utiliser les dépôts tiers à partir des origines spécifiées dans les " "rapports" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Répertoire de cache pour les paquets téléchargés dans le bac à sable" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Répertoire pour les paquets décompressés. Les exécutions futures présumeront " "qu'un paquet déjà téléchargé sera aussi extrait dans ce bac à sable." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Chemin d'un fichier contenant les informations d'authentification de la base " "de données des plantages. Ceci est utilisé lorsque l'on spécifie un ID de " "plantage pour téléverser les traces de la pile retracées (seulement si -g, -" "o ou -s ne sont pas spécifiés)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Afficher les traces de la pile retracées et demander une confirmation avant " "de les envoyer à la base de données des plantages." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Chemin de la copie de la base de données sqlite (par défaut : pas de " "vérification de la copie)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Vous ne pouvez pas utiliser -C sans -S. Arrêt." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "D'accord pour envoyer ceci comme pièces jointes ? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Ce paquet ne semble pas installé correctement." #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ce paquet n'est pas officiellement pris en charge par %s. Veuillez " "désinstaller tout paquet tiers et réessayer." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Les versions installées de certains paquets sont obsolètes. Veuillez mettre " "à niveau les paquets suivants, puis vérifier si le problème est toujours " "présent :\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programme inconnu" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Désolé, le programme « %s » a quitté de façon inattendue" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problème dans %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Votre ordinateur ne possède pas suffisamment de mémoire libre pour analyser " "automatiquement le problème et envoyer un rapport aux développeurs." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Rapport d'anomalie non valide" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Vous n'êtes pas autorisé à accéder à ce rapport d'anomalie." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Erreur" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Il n'y a pas assez d'espace disque disponible pour traiter ce rapport." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Aucun paquet spécifié" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Vous devez préciser un paquet ou un PID. Utilisez --help pour plus " "d'informations." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Autorisation refusée" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Le processus spécifié ne vous appartient pas. Veuillez exécuter ce programme " "en tant que propriétaire du processus ou en tant que super-utilisateur " "(root)." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID non valide" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "L'ID de processus spécifié n'appartient à aucun programme." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Le script %s n'a pas pu déterminer un paquet affecté" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Le paquet %s n'existe pas" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Impossible de créer le rapport" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Mise à jour du rapport d'anomalie" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Vous n'avez pas rapporté ce problème ou n'y êtes pas abonné, ou le rapport " "est un doublon ou déjà fermé.\n" "\n" "Veuillez créer un nouveau rapport en utilisant « apport-bug »." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Vous n'êtes pas le rédacteur de ce rapport d'anomalie. Il est bien plus " "facile de marquer un bogue comme doublon que de déplacer vos commentaires et " "pièces jointes vers un nouveau bogue.\n" "\n" "Par conséquent, nous vous recommandons de compléter un nouveau rapport de " "bogue en utilisant « apport-bug » et de laisser un commentaire dans le bogue " "initial.\n" "\n" "Voulez-vous vraiment continuer ?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Aucune information supplémentaire n'a été collectée." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Quel type de problème voulez-vous signaler ?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Symptôme inconnu" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Le symptôme « %s » est inconnu." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Après avoir fermé ce message, veuillez cliquer sur la fenêtre de " "l'application pour laquelle vous voulez signaler un problème." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop n'a pas pu déterminer l'ID du processus de la fenêtre" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <numéro du rapport>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Veuillez indiquer le nom du paquet." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Ajouter un marqueur supplémentaire pour le rapport. Peut être spécifié " "plusieurs fois." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Démarre en mode signalement de bogue. Nécessite l'argument --package et --" "pid en option, ou simplement --pid. Si aucun n'est fournit, affiche une " "liste de symptômes connus. (Implicite si un seul argument est fournit.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" "Cliquez sur la fenêtre pour laquelle vous voulez signaler un problème." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Démarrer en mode de mise à jour de bogue. Accepte l’option --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Rédiger un rapport de bogue concernant un symptôme. (Implicite si le nom du " "symptôme est donné comme unique argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Spécifier un nom de paquet dans le mode --file-bug. Ceci est optionnel si un " "--pid est spécifié. (Implicite si le nom du paquet est donné comme unique " "argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Spécifier un programme s'exécutant en mode « --file-bug ». Si ceci est " "spécifié, le rapport de bogue contiendra davantage d'informations. " "(implicite si l’identifiant du processus est passé comme unique argument)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Le pid fourni est une application qui ne répond pas." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Signaler le plantage à partir d'un fichier .apport ou .crash donné plutôt " "qu'à partir de ceux en attente dans %s. (Implicite si le fichier est donné " "comme unique argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "En mode de signalement de bogue, enregistre les informations collectées dans " "un fichier au lieu de générer un rapport. Ce fichier pourra être utilisé " "plus tard à partir d'une autre machine pour envoyer un rapport." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Afficher le numéro de version d'Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Cela va lancer apport-retrace dans une fenêtre de terminal pour examiner le " "plantage." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Lancer une session gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Exécuter la session gdb sans télécharger les symboles de débogage" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Mettre %s à jour avec une trace de pile entièrement symbolique" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Ce rapport d'anomalie fait référence à un logiciel qui n'est plus installé." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Le problème concerne le programme %s qui a changé depuis le plantage." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Ce rapport d'anomalie est endommagé et ne peut pas être traité." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Le rapport fait référence à un paquet non installé." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "Une erreur est survenue lors du traitement de ce rapport d'anomalie :" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Impossible de déterminer le nom du paquet ou du paquet source." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Impossible de lancer le navigateur Web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Impossible de lancer le navigateur Web pour ouvrir %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Veuillez saisir les informations de votre compte pour le système de suivi " "des bogues %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problème de réseau" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Impossible de se connecter à la base de données des plantages. Veuillez " "vérifier votre connexion Internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Mémoire saturée" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Votre système n'a pas assez de mémoire pour traiter ce rapport de plantage." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Le problème ne peut pas être signalé :\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problème déjà connu" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ce problème a déjà fait l'objet du rapport de bogue affiché dans le " "navigateur Web. Veuillez vérifier si vous pouvez ajouter des informations " "complémentaires susceptibles d'aider les développeurs." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ce problème a déjà été signalé aux développeurs. Merci !" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Cela s'est produit lors d'une mise en veille précédente et a empêché la " "bonne reprise du système." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Cela s'est produit lors d'une mise en veille prolongée précédente et a " "empêché la bonne reprise du système." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Le processus de sortie de veille a bloqué juste avant la fin et apparaîtra " "comme ayant terminé normalement." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Appuyer sur une touche pour continuer…" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Que voulez-vous faire ? Les choix possibles sont :" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Faites un choix (%s) :" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i octets)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Après l'envoi du rapport d'anomalie, veuillez compléter le formulaire\n" "dans le navigateur Web ouvert automatiquement." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Envoyer le rapport (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "E&xaminer en local" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Voir le rapport" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Conserver le fichier du rapport pour l'envoyer ultérieurement ou le copier " "quelque part" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Annuler et &ignorer les plantages futurs de cette version du programme" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Annuler" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Fichier du rapport d'anomalie :" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirmer" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Erreur : %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Les informations collectées peuvent être envoyées aux développeurs pour\n" "améliorer l'application. Cela peut prendre quelques minutes." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Les informations collectées sont envoyées au système de suivi de bogues.\n" "Cela peut prendre quelques minutes." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Terminé" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "aucun" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Sélectionné : %s. Choix multiples :" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Choix :" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Chemin du fichier (Entrée pour annuler) :" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Le fichier n'existe pas." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Ceci est un répertoire." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Pour continuer, vous devez visiter l'adresse suivante :" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Vous pouvez lancer un navigateur maintenant, ou copier cette adresse dans un " "navigateur sur un autre ordinateur." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Lancer un navigateur Web maintenant" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Aucun rapport de plantage en attente. Essayer --help pour plus " "d'informations." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Rapport complet (recommandé ; %s)" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Si vous ne faisiez rien de confidentiel (saisie de mots de passe ou " #~ "d'informations privées), vous pouvez aider à améliorer l'application en " #~ "signalant le problème." #~ msgid "_Send Report" #~ msgstr "_Envoyer le rapport" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s a quitté de manière inattendue le %s à %s" #~ msgid "Restart _Program" #~ msgstr "Relancer le _programme" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Envoyer un rapport complet (recommandé ; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorer les prochains plantages de cette version du programme" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Envoyer un rapport ab&régé (connexion Internet lente ; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Des parties volumineuses vont être supprimées du rapport. Elles sont très " #~ "utiles aux développeurs pour résoudre le problème, mais peuvent se révéler " #~ "trop lourdes lors de leur transmission si vous ne disposez que d'une " #~ "connexion Internet bas débit." #~ msgid "_Report Problem..." #~ msgstr "Signaler ce p_roblème..." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Vous pouvez aider les développeurs à résoudre le problème en le signalant." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Ceci n'est pas un authentique paquet %s" #~ msgid "Content of the report" #~ msgstr "Contenu du rapport" #~ msgid "Package problem" #~ msgstr "Problème de paquet" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Un problème sérieux avec le noyau s'est produit sur votre système." #~ msgid "Application problem" #~ msgstr "Problème logiciel" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "&Report Problem..." #~ msgstr "&Signaler le problème..." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Vous pouvez aider les développeurs à corriger ce problème en le signalant." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Rapport abrégé (connexion Internet lente ; %s)" #~ msgid "Kernel problem" #~ msgstr "Problème de noyau" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Si vous ne faisiez rien de confidentiel (saisie de mots de passe ou " #~ "d'autres\n" #~ "informations privées), vous pouvez aider à améliorer l'application en " #~ "signalant\n" #~ "le problème." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "L'installation ou la mise à niveau du paquet « %s » a échoué." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Désolé, échec lors de l'installation " #~ "ou de la mise à niveau du paquet « %s ».</span>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "Vous devez faire une opération locale (-s, -g, -o) ou fournir un fichier " #~ "d'authentification (--auth) ; voir --help pour une aide succincte" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Envoyer un rapport d'incident aux développeurs ?</b></big>\n" #~ "\n" #~ "Une fois le rapport envoyé, veuillez remplir le formulaire affiché " #~ "automatiquement dans votre navigateur Web." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Cela s'est produit lors d'une précédente mise en veille, l'empêchant de " #~ "reprendre correctement." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Cela s'est produit lors d'une précédente hibernation, l'empêchant de " #~ "reprendre correctement." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Désolé, l'application %s a quitté de façon inattendue." #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "nombre d'arguments incorrects ; utilisez --help pour une aide succincte" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Votre système pourrait devenir instable et nécessiter un redémarrage." �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/fr_CA.po��������������������������������������������������������������������������0000664�0000000�0000000�00000131643�14416106601�012011� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# French (Canada) translation for apport # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2014. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:45+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: French (Canada) <fr_CA@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Annuler" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Relevé de plantage" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Désolé, une erreur interne est survenue!</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Si vous continuez à remarquer des problèmes, essayez de redémarrer " "l'ordinateur." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Envoyer un rapport d'erreur pour aider à corriger ce problème" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorer les problèmes futurs de cette version du programme" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Montrer les détails" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examiner localement" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Laisser fermé" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continuer" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Collecte des informations sur le problème</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Des informations sont recueillies qui pourraient aider les développeurs à " "corriger le problème que vous signalez." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Téléversement des informations du problème" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Téléversement des informations sur le problème</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Les données recueillies sont transmises au gestionnaire de bogues. Cela peut " "prendre quelques minutes." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Fichier de plantage Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(données binaires)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Désolé, l'application %s s'est arrêtée de manière inattendue." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Désolé, %s s'est fermé de manière inattendue." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Désolé, %s a rencontré une erreur interne." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Envoyer un relevé de problème aux développeurs?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Envoyer" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Fermée de force" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Relancer" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "L'application %s a cessé de répondre." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Le programme « %s » a cessé de répondre." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paquet : %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Désolé, une erreur est survenue durant l'installation d'un logiciel." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "L'application %s a rencontré une erreur interne." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "L'application %s a quitté de façon inattendue." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorer les problèmes futurs de ce type" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Masquer les détails" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Utilisation : %s <relevé> <répertoire cible>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Le répertoire de destination existe et n'est pas vide." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nom d'utilisateur :" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Mot de passe :" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Collecte des informations du problème" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Collecte des informations du problème" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Les informations recueillies peuvent être envoyées aux développeurs pour " "améliorer l’application. Cela peut prendre quelques minutes." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Téléversement des informations du problème" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Recueillir des informations sur le système" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Une authentification est exigée pour recueillir des informations sur le " "système pour ce relevé de bogue" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Relevés de problèmes système" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Veuillez saisir votre mot de passe pour accéder aux relevés de problèmes des " "programmes système" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Signaler un problème…" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Signaler un dysfonctionnement aux développeurs" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Voir la page man pour plus de détails." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "indiquer le nom du fichier journal produit par valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "réutiliser un répertoire de bac à sable (SDIR) créé précédemment ou, s'il " "n'existe pas, le créer" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "ne pas créer ou réutiliser un répertoire de bac à sable pour des symboles " "additionnels de débogage, mais s'appuyer seulement sur les symboles de " "débogage installés." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "réutiliser un répertoire de cache (CDIR) précédemment créé ou, s'il n'existe " "pas, le créer" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "signaler la progression du téléchargement/installation lors de " "l’installation de paquets dans le bac à sable" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "l'exécutable lancé dans l'outil de vérification de la mémoire de valgrind " "pour détecter les fuites de mémoire." #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Installer un paquet supplémentaire dans le bac à sable (peut être indiqué " "plusieurs fois)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Erreur : %s n'est pas un exécutable. Arrêt." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Votre système pourrait maintenant devenir instable et nécessiter un " "redémarrage." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Ne pas placer les nouvelles « traces » dans le relevé, mais les écrire sur " "la sortie standard." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Démarrer une session gdb interactive avec l’image système du relevé (-o " "ignoré ; ne réécrit pas le rapport)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Écrire le relevé modifié dans le fichier donné au lieu de changer le relevé " "original." #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Supprimer le vidage du système du rapport après régénération de la trace de " "la pile" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Remplacer le fichier CoreFile du relevé" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Remplacer le chemin ExecutablePath du relevé" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Remplacer la mappe des processus ProcMaps du relevé" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Reconstruire les informations sur les paquets du relevé" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Construire un bac à sable temporaire et y télécharger/installer les paquets " "et les symboles de débogage nécessaires; sans cette option, il est supposer " "que les paquets et les symboles de débogage sont déjà installés sur le " "système. L'argument pointe vers le dossier de configuration de base du " "système de paquets; si vous spécifiez « system », les fichiers de " "configuration du système seront utilisés, mais seuls les plantages de la " "version en cours d'exécution pourront être retracés." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Signaler l'avancement du téléchargement/de l'installation lors de " "l'installation de paquets dans le bac à sable." #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Ajouter un horodatage au début des messages de journal, pour un traitement " "par lots" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Créer et utiliser les dépôts tiers à partir des origines indiquées dans les " "relevés" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Répertoire de cache pour les paquets téléchargés dans le bac à sable" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Répertoire pour les paquets décompressés. Les exécutions futures supposeront " "qu'un paquet déjà téléchargé est aussi extrait dans ce bac à sable." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Chemin d’un fichier contenant les informations d’authentification de la base " "de données des plantages. Cela est utilisé si l’on indique un ID de plantage " "pour téléverser les traces de la pile retracées (seulement si -g, -o ou -s " "ne sont pas indiqués)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Afficher les traces de la pile retracées et demander une confirmation avant " "de les envoyer à la base de données des plantages." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Chemin de la copie de la base de données sqlite (par défaut : pas de " "vérification de la copie)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Vous ne pouvez pas utiliser -C sans -S. Arrêt." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Envoyer cela comme fichiers joints? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Ce paquet ne semble pas être installé correctement." #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ce n'est pas un paquet officiel %s. Veuillez enlever tout paquet tiers et " "ressayer." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Vous avez certaines versions de paquets obsolètes d'installées. Veuillez " "mettre à niveau les paquets suivants et vérifier si le problème se présente " "toujours :\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programme inconnu" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Désolé, le programme « %s » s'est fermé de façon inattendue" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problème dans %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Votre ordinateur n’a pas assez de mémoire libre pour analyser " "automatiquement le problème et envoyer un relevé aux développeurs." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Le relevé de problème est invalide" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Vous n’êtes pas autorisé à accéder à ce relever de problème." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Erreur" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Il n’y a pas assez d’espace disque libre pour traiter ce relevé." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Aucun paquet n’est indiqué" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Vous devez préciser un paquet ou un PID. Voir --help pour plus " "d'informations." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permission refusée" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Le processus indiqué ne vous appartient pas. Veuillez exécuter ce programme " "en tant que propriétaire du processus ou en tant que root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID invalide" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "L'ID de processus indiqué n’appartient à aucun programme." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Le script symptome %s n'a pas déterminé un paquet affecté" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Le paquet %s n'existe pas" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Impossible de créer le relevé" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Mise à jour du relevé de problème" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Vous n’avez pas signalé ce problème ni ne l’avez envoyé, ou le relevé est un " "doublon ou déjà fermé.\n" "\n" "Veuillez créer un nouveau relevé en utilisant « apport-bug »." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Vous n’êtes pas le rédacteur de ce rapport d’anomalie. Il est bien plus " "facile de marquer un bogue comme doublon que de déplacer vos commentaires et " "pièces jointes vers un nouveau bogue.\n" "\n" "Par conséquent, nous vous recommandons d’envoyer un nouveau rapport de bogue " "en utilisant « apport-bug » et de laisser un commentaire dans le bogue " "initial.\n" "\n" "Voulez-vous vraiment continuer ?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Aucune autre information n'a été recueillie." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Quel sorte de problème voulez-vous signaler?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Symptôme inconnu" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Le symptôme « %s » est inconnu." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Après avoir fermé ce message, veuillez cliquer sur la fenêtre de " "l’application pour laquelle vous voulez signaler un problème." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop n'a pas pu déterminer l'ID du processus de la fenêtre" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <numéro de relevé>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Indiquer le nom du paquet." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Ajouter une balise supplémentaire au relevé. Peut être indiquée plusieurs " "fois." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Démarrer en mode de rapport de bogue. --package est nécessaire et --pid en " "option, ou juste --pid. Si aucun n'est donné, afficher une liste de " "symptômes connus. (Implicite si un seul argument est donné.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Cliquer sur une fenêtre qui sera la cible du relevé de problème." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Démarrer en mode de mise à jour de bogue. Accepte l’option --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Rédiger un relevé de bogue relatif à un symptôme. (Implicite si le nom du " "symptôme est donné comme seul argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Indiquer un nom de paquet dans le mode --file-bug. Cela est facultatif si un " "--pid est indiqué. (Implicite si le nom du paquet est donné comme seul " "argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Indiquer un programme en cours en mode --file-bug. Si cela est indiqué, le " "relevé de bogue contiendra plus d’informations. (implicite si le pid est " "donné comme seul argument)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Le pid fourni est une application bloquée." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Signaler le plantage à partir d’un fichier .apport ou .crash donné plutôt " "qu’à partir de ceux en attente dans %s. (Implicite si le fichier est donné " "comme seul argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "En mode de rédaction de bogue, enregistrer les informations recueillies dans " "un fichier au lieu de les signaler. Ce fichier pourra ensuite être signalé " "plus tard à partir d'une machine différente." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Imprimer le numéro de version d'Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "apport-retrace sera lancé dans une fenêtre de terminal pour examiner le " "plantage." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Exécuter une session gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Exécuter une session gdb sans télécharger les symboles de débogage" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Mettre %s à jour avec une trace de pile entièrement symbolique" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Ce relevé de problème concerne un logiciel qui n’est plus installé." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Le problème est survenu avec le programme %s qui a changé depuis le plantage." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Ce relevé de problème est endommagé et ne peut pas être traité." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Le rapport appartient à un paquet qui n'est pas installé." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "Une erreur est survenue lors du traitement de ce relevé de problème :" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Impossible de déterminer le nom du paquet ou du paquet source." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Impossible de démarrer le navigateur Web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Impossible de démarrer le navigateur Web pour ouvrir %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Veuillez saisir les informations de votre compte pour le gestionnaire de " "bogues %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problème de réseau" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Impossible de se connecter à la base de données des plantages. Veuillez " "vérifier votre connexion Internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Mémoire pleine" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Votre système n’a pas assez de mémoire pour traiter ce relevé de plantage." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Le problème ne peut pas être signalé :\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problème déjà connu" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ce problème a déjà été signalé dans le relevé de bogue affiché dans le " "navigateur Web. Veuillez vérifier si vous pouvez ajouter des renseignements " "complémentaires susceptibles d’aider les développeurs." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ce problème a déjà été signalé aux développeurs. Merci!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Cela s'est produit lors d'une mise en veille précédente et a empêché la " "reprise correcte du système." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Cela s'est produit lors d'une mise en veille prolongée précédente et a " "empêché la reprise correcte du système." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Le processus de sortie de veille a bloqué juste avant la fin et apparaîtra " "comme ayant terminé normalement." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Peser sur une touche pour continuer…" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Que voudriez-vous faire? Les options sont :" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Veuiilez choisir (%s) :" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i octets)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Après envoi du relevé de problème, veuillez compléter le formulaire\n" "dans le navigateur Web ouvert automatiquement." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Envoyer le relevé (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examiner localement" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Visualiser le relevé" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Garder le fichier du relevé pour un envoi ultérieur ou pour le copier " "ailleurs" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Annuler et &ignorer les plantages futurs de cette version du programme" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Annuler" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Fichier du relevé de problème :" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirmer" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Erreur : %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Les informations recueillies peuvent être envoyées aux développeurs pour\n" "améliorer l’application. Cela pourrait prendre quelques minutes." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Les informations recueillies sont envoyées au gestionnaire de bogues.\n" "Cela pourrait prendre quelques minutes." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Effectué" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "aucun" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Choisinbsp]: %s. Choix multiples :" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Choix :" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Chemin du fichier (Entrée pour annuler) :" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Le fichier n'existe pas." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Ceci est un répertoire." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Pour continuer, vous devez visiter l'URL suivante :" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Vous pouvez lancer un navigateur maintenant, ou copier cette URL dans un " "navigateur sur un autre ordinateur." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Lancer un navigateur maintenant" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Aucun relevé de plantage en attente. Essayer --help pour plus d’informations." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "nombre d'arguments incorrects; utiliser --help pour une aide brève" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ceci est arrivé durant une mise en veille précédente et l'a empêché d'en " #~ "sortir correctement." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ceci est arrivé durant une mise en veille prolongée précédente et l'a " #~ "empêché d'en sortir correctement." #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "vous devez soit faire une opération locale (-s, -g, -o), soit fournir un " #~ "fichier d'authentification (--auth) ; voir --help pour une aide brève" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Votre système pourrait maintenant devenir instable et pourrait avoir besoin " #~ "d'être redémarré." ���������������������������������������������������������������������������������������������apport-2.20.11/po/ga.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077416�14416106601�011435� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Irish translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Irish <ga@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ga\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/gd.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000133565�14416106601�011436� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Gaelic; Scottish translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Gaelic; Scottish <gd@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Sguir dheth" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Ceart ma-thà" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Aithris tuislidh" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" "<big><b>Tha sinn duillich ach thachair mearachd inntearnail.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Ma mhothaicheas tu do dhuilgheadasan eile, feuch is ath-thòisich an " "coimpiutair." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" "Cuir thugainn aithris air a' mhearachd seo gus taic a chumail rinn 'ga " "chàraidh" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" "Leig seachad duilgheadas an tionndaidh seo dhen phrògram san àm ri teachd" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Seall am mion-fhiosrachadh" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Sgrùd e gu h-ionadail" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Fàg dùinte e" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Lean air adhart" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>A' cruinneachadh fiosrachadh mun duilgheadas</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Tha sinn a' cruinneachadh fiosrachadh a dh'fhaodadh a bhith cuideachail dhan " "luchd-leasachaidh a' càradh an duilgheadais a rinn thu aithris air." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "A' luchdadh suas fiosrachadh mun duilgheadas" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>A' luchdadh suas fiosrachadh mun duilgheadas</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Tha am fiosrachadh a chaidh a chruinneachadh ga chur gu siostam tracadh nam " "bugaichean. Dh'fhaoidte gum feum seo beagan mhionaidean." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Faidhle tuislidh Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(dàta bìnearaidh)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Tha sinn duilich ach stad an aplacaid %s gu h-obann." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Tha sinn duilich ach dhùin %s gu h-obann." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Tha sinn duilich, thachair mearachd inntearnail ann an %s." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" "A bheil thu airson aithris mun duilgheadas a chur gun luchd-leasachaidh?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Sparr air dùnadh" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Chan eil an aplacaid \"%s\" a' freagairt tuilleadh." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Chan eil am prògram \"%s\" a' freagairt tuilleadh." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" "Tha sinn duilich, dh'èirich duilgheadas nuair a bha sinn a' stàladh a' " "bhathair-bhog." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Thachair an aplacaid %s ri mearachd inntearnail." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Dhùin an aplacaid %s gu h-obann." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Leig seachad duilgheadasan dhen t-seòrsa seo san àm ri teachd" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Falaich am mion-fhiosrachadh" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Pàtran: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Tha am pasgan sin sa cheann-uidhe mu thràth 's chan eil e falamh." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "A' cruinneachadh fiosrachadh mun duilgheadas" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "A' cruinneachadh fiosrachadh mun duilgheadas" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "'S urrainn dhut am fiosrachadh a chaidh a chruinneachadh a chur dhan luchd-" "leasachaidh airson 's gun urrainn dhaibh an aplacaid a leasachadh. " "Dh'fhaoidte gum feum seo beagan mhionaidean." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "A' luchdadh suas fiosrachadh mun duilgheadas" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Cruinnich fiosrachaidh mun t-siostam" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Tha feum air dearbhadh mus urrainn dhuinn fiosrachadh a chruinneachadh mun t-" "siostam airson na h-aithrise seo" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Aithrisean air duilgheadasan an t-siostaim" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Cuir a-steach am facal-faire agad gus cothrom fhaighinn air aithrisean mu " "dhèidhinn duilgheadas a bha aig prògraman a t-siostaim" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Dèan aithris air duilgheadas..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Dèan aithris air mearachd dhan luchd-leasachaidh" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Faic duilleag na treòire airson mion-fhiosrachadh." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "sònraich ainm faidhle an loga a rinn valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "Cleachd Sandbox Dir (SDIR) a-rithist a chaidh a chruthachadh roimhe no, mur " "eil e ann, cruthaich e" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "na cruthaich 's na cleachd Sandbox Directory a-rithist airson samhlaidhean " "dì-bhugachaidh a bharrachd is cleachd dìreach an fheadhainn a tha stàlaichte." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "Cleachd Cache Dir (CDIR) a-rithist a chaidh a chruthachadh roimhe no, mur " "eil e ann, cruthaich e" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "seall adhartas an luchdaidh a-nuas/an stàlaidh nuair a stàlaichear pacaidean " "sa bhogsa-ghainmhich" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "an executable a thèid a ruith fo inneal sgrùdadh na cuimhne aig valgrind " "airson greim fhaighinn air aoidion cuimhne" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Stàlaich pacaid a bharrachd san bhogsa-ghainmhich (gabhaidh seo a " "shònrachadh iomadh turas)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Mearachd: Chan eil %s 'na rud so-ghnìomhaichte. A' sgur dheth." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Dh'fhaoidte gum fàs an siostam agad neo-sheasmhach a-nis is gum b' fheairrde " "dhut ath-thòiseachadh." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Na cuir na traces ùra dhan aithris ach sgrìobh iad ann an stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Tòisich air seisean gdb eadar-ghnìomhach le core dump na h-aithrise (-o air " "a leigeil seachad; cha dèan e ath-sgrìobhadh na h-aithrise)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Sgrìobh an aithris atharraichte san fhaidhle a tha ann 's na atharraich an " "aithris thùsail" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Thoir air falbh an core dump às an aithris às dèidh ath-ghintinn an stack " "trace" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Tar-àithn CoreFile na h-aithrise" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Tar-àithn ExecutablePath na h-aithrise" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Tar-àithn ProcMaps na h-aithrise" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Ath-thog fiosrachadh pacaid na h-aithrise" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Tog bogsa-gainmhich sealach is luchdaich a-nuas/stàlaich na pacaidean is " "samhlaidhean dì-bhugachaidh air a bheil feum ann; as aonais na roghainn seo, " "tuigear dheth gun deach na pacaidean is samhlaidhean dì-bhugachaidh " "iomchaidh a stàladh air an t-siostam mu thràth. Tha an argamaid seo a' " "tomhadh ris a' bhun-phasgan aig rèiteachadh siostam nam pacaidean; ma " "shònraicheas tu \"system\", cleachdaidh e faidhlichean rèiteachaidh an t-" "siostaim ach ma nì thu sin, chan urrainn dha retrace a dhèanamh air " "tuislidhean ach feadhainn san sgaoileadh a tha a' ruith an-dràsta fhèin." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Seall adhartas an luchdaidh a-nuas/an stàlaidh nuair a stàlaichear pacaidean " "sa bhogsa-ghainmhich" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Cuir stampa-ama air beulaibh teachdaireachdan an loga, airson gnìomhachadh " "batch" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Cruthaich is cleachd ionadan-tasgaidh le treas-phàrtaidhean o thùsan a " "chaidh a shònrachadh ann an aithrisean" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" "Pasgan an tasgadain airson pacaidean a chaidh a luchdadh a-nuas dhan bhogsa-" "ghainmhich" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Am pasgan airson pacaidean a chaidh fhosgladh. Tuigear dheth ann an ruith " "sam bith o seo a-mach gun dèid pacaid sam bith a chaidh a luchdadh a-nuas " "fhosgladh 's a chur dhan bhogsa-ghainmhich seo mu thràth." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Slighe gu faidhle sa bheil am fiosrachadh airson dearbhadh aig stòr-dàta nan " "tuislidhean. Tha seo 'ga chleachdadh nuair a shònraichear ID tuislidh gus na " "retraced stack traces a luchdadh suas (dìreach mur an deach -g, -o no -s a " "shònrachadh)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Seall na retraced stack traces is faighnich dhìom mus dèid an cur gu stòr-" "dàta nan tuislidhean." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "An t-slighe gun stòr-dàta sqlite dùblaichte (bun-roghainn: cha doirear sùil " "a bheil iad dùblaichte)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Chan urrainn dhut -C a chleachdadh às aonais -S. A' stad." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "A bheil e ceart gu leòr an cur mar cheanglachain? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Tha coltas nach deach a' phacaid seo a stàladh mar bu chòir" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Chan e pacaid %s oifigeil a tha seo. Thoir air falbh pacaid sam bith a tha " "le treas-phàrtaidh 's feuch ris a-rithist." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Tha cuid a phacaidean stàlaichte agad a tha ro aosta. Àrdaich na pacaidean a " "leanas agus thoir sùil ach a bheil an duilgheadas ann fhathast:\n" "\n" " %s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Tha sinn duilich ach dhùin am prògram \"%s\" gu h-obann." #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Duilgheadas ann an %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Chan eil cuimhne shaor gu leòr aig a' choimpiutair agad agus chan urrainn " "dha an duilgheadas a sgrùdadh gu fèin-obrachail is aithris a chur dhan luchd-" "leasachaidh." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Aithris duilgheadais mhì-dhligheach" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Chan eil cead-inntrigidh agad dhan aithris duilgheadais seo." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Chan eil àite gu leòr air an diosg gus an aithris seo a làimhseachadh." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Feumaidh tu pacaid no PID a shònrachadh. Faic --help airson barrachd " "fiosrachaidh." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Chaidh cead a dhiùltadh" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Chan eil am pròiseas a shònraich thu a' buntainn riut. Ruith am prògram seo " "mar shealbhadair a' phròiseis no mar root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID mì-dhligheach" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Chan eil ID a' phròiseis a shònraich thu a' buntainn do phrògram." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Cha do lorg an sgriobt %s pacaid air a bheil buaidh" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Chan eil a' phacaid %s ann" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Cha ghabh an aithris a chruthachadh" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Ag ùrachadh aithris an duilgheadais" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Cha tusa an neach a rinn aithris air an duilgheadas seo 's chan eil fo-" "sgrìobhadh agad ann air neo bha an aithris seo ann dà thuras no chaidh a " "dhùnadh mu thràth.\n" "\n" "Cruthaich aithris ùr le \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Cha tusa an neach a rinn aithris air an duilgheadas seo. Tha e fada nas " "fhasa comharra a chur ri buga a dh'innseas gur e dùblachadh a tha ann seach " "na beachdan is ceanglachain agad a ghluasad gu buga ùr.\n" "\n" "Leis a sin, mholamaid dhut aithris ùr a dhèanamh air a' bhuga le \"apport-" "bug\" agus beachd a chur ris a' bhuga seo mun fhear a chlàraich thu.\n" "\n" "A bheil thu cinnteach gu bheil thu airson leantainn air adhart?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Cha deach fiosrachadh a bharrachd a chruinneachadh." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Dè seòrsa duilgheadas tha thu airson aithris a dhèanamh air?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Buaidh nach aithne dhuinn" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Chan aithne dhuinn a' bhuaidh \"%s\"." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "An dèidh dhut an teachdaireachd seo a dhùnadh. briog air uinneag aplacaid " "gus aithris a dhèanamh air duilgheadas leis." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "Cha b' urrainn dha xprop ID pròiseas na h-uinneige a dhearbhadh" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Sònraich ainm na pacaid." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Cuir taga a bharrachd ris an aithris. 'S urrainn dhut a shònrachadh iomadh " "turas." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Tòisich sa mhodh aithriseadh bhugaichean. Feumaidh seo --package agus --pid " "roghainneil no dìreach --pid. Mur eil aon seach aon dhiubh ann, nochd liosta " "de bhuaidhean air a bheil eòlas. (Tuigear dheth seo ma tha argamaid " "shingilte air a chur ann)." #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" "Briog air uinneag mar thargaid gus aithris a dhèanamh air duilgheadas." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Tòisich sa mhodh ùrachadh bhugaichean. Gabhaidh seo ri --package ma tha feum " "air." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Clàraich buga mu dhèidhinn buaidh. (Tuigear dheth seo mas e ainm na buaidhe " "an aon argamaid.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Sònraich ainm na pacaid sa mhodh --file-bug. Tha seo roghainneil ma chaidh --" "pid a shònrachadh. (Tuigear dheth seo mas e ainm na pacaid an aon argamaid.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Sònraich prògram a tha a' ruith sa mhodh --file-bug. Ma thèid seo a " "shònrachadh, bidh barrachd fiosrachaidh san aithris. (Tuigear dheth seo mas " "e pid an aon argamaid.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Tha am pid a shònraich thu 'na aplacaid chrochte." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Dèan aithris air an tuisleadh on fhaidhle .apport no .crash a tha ann seach " "an fheadhainn a tha ri dhèiligeadh ann an %s. (Tuigear dheth seo mas e am " "faidhle an aon argamaid.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Sa mhodh aithriseadh bhugaichean, sàbhail am fiosrachadh a chaidh a " "chruinneachadh ann am faidhle seach a bhith a' dèanamh aithris air. 'S " "urrainn dhut aithris a dhèanamh leis an fhaidhle às a dhèidh sin no o " "choimpiutair eile." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Clò-bhuail àireamh an tionndaidh aig Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Cuireadh seo air bhog apport-retrace ann an uinneag tèirmineil gus sgrùdadh " "a dhèanamh air an tuisleadh." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" "Ruith seisean gdb as aonais gun a bhith a' luchdadh a-nuas nan samhlaidhean " "dì-bhugachaidh" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Ùraich %s le Stack Trace a tha gu tur samhlach" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Tha aithris an duilgheadais seo a' buntainn ri prògram nach eil stàlaichte " "tuilleadh." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Thachair an duilgheadas leis a' phrògram %s ach chaidh atharrachadh on a " "thachair an tuisleadh." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Chaidh an aithris seo a dhochann is cha ghabh a làimhseachadh." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Tha an aithris seo a' buntainn do phacaid nach eil stàlaichte." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "Thachair mearachd fhad 's a bha sinn a' feuchainn ri aithris na mearachd seo " "a làimhseachadh:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" "Cha b' urrainn dhuinn a' phacaid no ainm na pacaid thùsail a dhearbhadh." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Chan urrainn dhuinn brabhsair-lìn a thòiseachadh" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Chan urrainn dhuinn brabhsair-lìn a thòiseachadh gus %s fhosgladh." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Cuir a-steach fiosrachadh a' chunntais agad airson siostam tracadh nam " "bugaichean aig %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Duilgheadas leis an lìonra" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Chan urrainn dhuinn ceangal ri stòr-dàta nan tuisleadh, thoir sùil air a' " "cheangal agad ris an eadar-lìon." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Gainnead cuimhne" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Chan eil cuimhne gu leòr air an t-siostam agad is chan urrainn dha aithris " "an tuislidh seo a làimhseachadh." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Chan urrainn dhuinn aithris a dhèanamh air an duilgheadas:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Tha sinn eòlach air an duilgheadas seo mu thràth" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Chaidh aithris a dhèanamh air an duilgheadas seo mu thràth is chì thu " "aithris a' bhuga sa bhrabhsair-lìn agad. Thoir sùil ach a bheil fiosrachadh " "ùr sam bith agad a dh'fhaodadh a bhith feumail dhan luchd-leasachaidh." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" "Fhuair an luchd-leasachaidh aithris air an duilgheadas seo mu thràth. Tapadh " "leat!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Thachair seo nuair a chaidh a chur ’na dhàil roimhe agus cha b’ urrainn dhan " "t-siostam leantainn air adhart mar bu chòir ri linn." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Thachair seo nuair a chaidh a chur ’na chadal-geamhraidh roimhe agus cha b’ " "urrainn dhan t-siostam leantainn air adhart mar bu chòir ri linn." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Lean sinn air ach thuislich e aig an fhìor-dheireadh agus bidh coltas gun " "deach a choileanadh mar bu chòir." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Brùth putan sam bith airson leantainn air adhart..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Dè bu chaomh leat dèanamh? Seo na roghainnean agad:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Dèan taghadh (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "An dèidh dhut an aithris air an duilgheadas a chur, nach lìon thu am foirm\n" "ann an uinneag a' bhrabhsair a thèid fhosgladh gu fèin-obrachail?" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Cuir an aithris (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Sgrùd gu h-ionadail" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Faic an aithris" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Glèidh faidhle na h-aithrise gus a chur uaireigin eile no airson lethbhreac " "dheth a chur am badeigin eile" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Sguir dheth agus le&ig seachad tuislidhean de thionndadh seo a' phrògraim " "seo san àm ri teachd" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Sguir dheth" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Faidhle aithris an duilgheadais:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "'S urrainn dhut am fiosrachadh a chruinnich sinn a chur gun luchd-" "leasachaidh ach\n" "an urrainn dhaibh an aplacaid a leasachadh. Faodaidh gun doir seo beagan " "mhionaidean." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Tha am fiosrachadh a chruinnich sinn 'ga chur gu siostam tracadh nam " "bugaichean.\n" "Dh'fhaoidte gun doir seo beagan mhionaidean." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Deiseil" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "chan eil gin" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Thagh thu: %s. Iomadh roghainn:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" "An t-slighe a dh'ionnsaigh an fhaidhle (Brùth Enter airson sgur dheth):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Chan eil am faidhle ann." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "'S e pasgan a tha seo." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" "Feumaidh tu tadhal air an URL a leanas mus urrainn dhut leantainn air adhart:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "'S urrainn dhut brabhsair a chur gu dol an-dràsta no lethbhreac dhen URL seo " "a chur ann am brabhsair no coimpiutair eile." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Cuir brabhsair gu dol an-dràsta" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Chan eil aithris sam bith air tuisleadh ri dhèiligeadh. Feuch --help airson " "barrachd fiosrachaidh." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Thachair seo nuair a chaidh a chur 'na dhàil roimhe agus cha b' urrainn " #~ "dhuinn leantainn air cùisean mar bu chòir." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Thachair seo nuair a chaidh a chur 'na chadal-geamhraidh roimhe agus cha b' " #~ "urrainn dhuinn leantainn air cùisean mar bu chòir." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "àireamh chearr de dh'argamaidean; cleachd --help airson beagan cobharach" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "feumaidh tu a dhèanamh gu h-ionadail (-s, -g -o) no feumaidh tu faidhle " #~ "dearbhaidh a shònrachadh (--auth); faic --help airson beagan cobharach" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Dh'fhaoidte gum fàs an siostam agad neo-sheasmhach a-nis agus gum bi agad ri " #~ "ath-thòiseachadh." �������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/gl.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000142134�14416106601�011436� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Galician translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2017-03-15 22:17+0000\n" "Last-Translator: Xosé <Unknown>\n" "Language-Team: Galician <gl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: gl\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Cancelar" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Aceptar" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Informe de erro" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Desculpas! Produciuse un erro interno.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Se segue tendo problemas, tente reiniciar o equipo." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Enviar un informe de erro para axudar a arranxar este problema" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorar futuros problemas desta versión do programa" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Mostrar detalles" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examinar localmente" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Manter pechado" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continuar" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Recopilando información sobre o problema</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Estase recollendo información que pode axudar aos desenvolvedores a arranxar " "o problema do que está informando." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Enviando a información do problema" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Enviando información do erro</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "A información recollida está sendo enviada ao sistema de seguimento de " "erros. Isto pode levar varios minutos." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Ficheiro de ruptura de Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(datos binarios)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "O aplicativo %s detívose de forma inesperada." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Sentímolo, %s pechouse de maneira inesperada." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Sentímolo, %s sufriu un erro interno." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Enviarlle un informe do problema aos desenvolvedores?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Enviar" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Forzar o peche" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Volver a iniciar" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "O aplicativo %s non responde." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "O programa «%s» non responde." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paquete: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Sentímolo, produciuse un problema ao instalar o software." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "O aplicativo %s sufriu un erro interno." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "O aplicativo %s pechouse de maneira inesperada." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorar os futuros problemas deste tipo" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Agochar os detalles" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Uso: %s <informe> <directorio de destino>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "O directorio de destino existe e non está baleiro." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nome de usuario:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Contrasinal:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Recompilando información do erro" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Recopilando información do erro" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "A información recollida pódeselle enviar aos desenvolvedores para que " "melloren o aplicativo. Isto podería levar uns minutos." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Enviando a información do erro" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Recoller información do sistema" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Requírese autenticación para recoller a información do sistema para este " "informe de erro" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Informes de problemas do sistema" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Introduza o seu contrasinal para acceder aos informes de problemas dos " "programas do sistema" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Informar dun problema..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Informar dun fallo aos desenvolvedores" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Vexa a páxina de man para máis detalles." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "indique o nome do ficheiro de rexistro producido por valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "reutilizar o cartafol de «sandbox» creado anteriormente (SDIR) ou, se non " "existe, crealo" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "non crear ou reutilizar o cartafol «sandbox» para os símbolos de depuración " "adicionais nese caso basearse só nos símbolos de depuración instalados" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "reutilizar o cartafol de cache creado anteriormente (CDIR) ou, se non " "existe, crealo" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "informar do progreso da descarga/instalación ao instalar paquetes na " "«sandbox»" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "o executábel que se executa baixo a ferramenta de comprobación de memoria " "valgrind para a detección de perdas de memoria" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Instalar un paquete adicional na área de probas (pode especificarse " "múltiples veces)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Erro: %s no né un executábel. Paramos." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "O sistema poderíase volver inestábel agora e podería haber que reinicialo." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Non poñer as trazas novas no informe senón escribilas na saída estándar " "(stdout)." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Iniciar unha sesión gdb interactiva coa saída núcleo do informe (-o " "ignorada; non escribe o informe)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Escribir o informe modificado no ficheiro dado no canto de modificar o " "informe orixinal" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Eliminar a saída do núcleo do informe despois da rexeneración da traza da " "pila" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Sobreescribir o CoreFile do informe" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Sobreescribir o ExecutablePath do informe" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Sobreescribir ProcMaps do informe" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Reconstruír a información do informe de paquete" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Construír unha área de probas temporal e descargar/instalar os paquetes " "necesarios e símbolos de depuración alí; sen esta opción asúmese que os " "paquetes necesarios e símbolos de depuración instalaranse no seu sistema. O " "argumento apunta ao cartafol base de configuración do sistema de paquetes; " "se non especificou «system», usaranse os ficheiros de configuración do " "sistema, mais só poderá analizar problemas serios que acontezan na versión " "en execución actualmente." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Informar do progreso da descarga/instalación mentres se instalan paquetes na " "área de probas" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Engadir ao inicio a marca de tempo nas mensaxes do rexistro, para operacións " "en lote" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Crear e empregar repositorios de terceiros a partir de orixes indicadas en " "informes" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Cartafol de caché para os paquetes descargados na área de probas" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Directorio para os paquetes non empaquetados. As execucións futuras asumirán " "que calquera paquete xa descargado tamén está extraído nesta caixa de area." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Ruta a un ficheiro coa información de autenticación da falla da base de " "datos. Isto úsase ao especificar un ID de falla para actualizar as trazas da " "pila retrazada (só no caso de que se especifique -g, -o ou -s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Mostrar a pila retrazada e pedir confirmación antes de enviala á base de " "datos de falla." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Ruta á base de datos de duplicados de sqlite (por omisión: non se verifica " "se hai duplicados)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Non é posíbel empregar -C sen -S. Paramos." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Acepta enviar estes como anexos? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Este paquete semella que non está instalado correctamente" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Este non é un paquete oficial de %s. Elimine os paquetes de terceiros e " "ténteo de novo." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Ten algúns paquetes instalados con versións obsoletas. Por favor, anove os " "seguintes paquetes e verifique se o problema persiste:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programa descoñecido" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Desculpe, o programa «%s» pechouse inesperadamente" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problema en %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "O seu computador non dispón de memoria libre abondo para analizar " "automaticamente o problema e enviarlle un informe aos desenvolvedores." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "O informe de problema non é válido" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Non ten permiso para acceder a este informe de problema." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Erro" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Non hai espazo abondo no disco para procesar este informe." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Non se especificou ningún paquete" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Ten que especificar un paquete ou un PID. Vexa --axuda para obter máis " "información." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permiso denegado" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "O proceso especificado non lle pertence. Execute este programa como " "propietario do proceso ou como root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "O PID non é válido" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "O ID de proceso especificado non pertence a ningún programa." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "O script «symptom» %s non determinou ningún paquete afectado" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "O paquete %s non existe" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Non se pode crear o informe" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Actualización de informe de problemas" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Vostede non é o informador ou subscritor deste informe de erros, ou o " "informe está duplicado ou xa foi pechado.\n" "\n" "Por favor, cree un novo informe con «apport-bug»." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Vostede non é o informador ou subscritor deste informe de erros. É moito " "máis doado marcar un fallo como un duplicado doutro que trasladar os seus " "comentarios e ficheiros adxuntos a un novo fallo.\n" "\n" "En consecuencia, recomendámoslle que faga un novo informe de erro utilizando " "«apport-bug» e facer un comentario neste fallo sobre o seu ficheiro.\n" "\n" "Desexa continuar?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Non se recolleu información adicional." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "De que tipo de problema quere informar?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Síntoma descoñecida" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Non se coñece a síntoma «%s»." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Despois de pechar esta mensaxe, prema nunha xanela do aplicativo para " "informar sobre este problema." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" "Produciuse un fallo en «xprop» ao determinar o ID de proceso da xanela" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <número do informe>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Especifique o nome do paquete." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Engade unha etiqueta extra ao informe. Pódese especificar varias veces." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opcións] [síntoma|pid|paquete|ruta ao programa|ficheiro .apport ou " ".crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Comezar no modo de presentación de erros. Require --package e un --pid " "opcional, ou só un --pid. Se non se fornece ningún, mostra unha lista de " "síntomas coñecidas. (Implícito se se fornece un único argumento.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Prema nunha xanela como un obxectivo para informar do problema." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Iniciar en modo de actualización de erros. Pode aceptar un --package " "opcional." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Ficheiro dun informe de erro dunha síntoma. (Implícito se se deu como único " "argumento o nome da síntoma)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Especificar un nome de paquete no modo --file-bug. Isto é opcional se se " "especifica un --pid. (Tamén se o nome do paquete foi dado só como argumento)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Especifica un programa executándose en modo --file-bug. De especificarse, o " "informe de erro conterá máis información. (Implica se o PID se fornece só " "como un argumento.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "O pid fornecido é un aplicativo bloqueado." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Informe sobre a falla no ficheiro dado .apport ou .crash en lugar de facelo " "nos pendentes en %s. (Tamén se o ficheiro foi dado só como argumento) ." #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "No modo de presentación o erros, garda a información recollida nun ficheiro " "no canto de enviala. Este ficheiro pódese enviar máis adiante desde unha " "máquina diferente." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Imprimir o número da versión do Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Isto iniciará apport-retrace nunha xanela de terminal para examinar o peche " "inesperado." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Executar sesión de gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Executar sesión de gdb sen descargar os símbolos de depuración" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Actualizar %s coa pila de chamadas simbólicas completas" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Este informe de problema aplícase a un programa que xa non está instalado.." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "O problema aconteceu co programa %s, que mudou desde que se produciu o fallo." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "O informe de erro está danado e non pode ser procesado." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "O informe refírese a un paquete que non está instalado." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Produciuse un erro ao tentar procesar este informe de problema:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Non se puido determinar o paquete ou o nome do paquete fonte." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Non é posíbel iniciar o navegador web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Non é posíbel iniciar o navegador para abrir %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Introduza a información da súa conta no sistema de seguimento de erros %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Erro de conexión" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "É imposíbel conectar coa base de datos de fallos. Verifique a conexión á " "Internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memoria esgotada" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "O sistema non posúe memoria abondo para procesar este informe de erro," #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Non se pode informar acerca deste problema:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problema coñecido" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Xa se informou deste problema no informe de erros que se mostra no navegador " "web. Comprobe se pode engadir información adicional que lle poida resultar " "de utilidade aos desenvolvedores." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Este problema xa foi informado ao desenvolvedores. Grazas!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Isto produciuse durante unha suspensión anterior do sistema e impediu que se " "retomase adecuadamente." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Isto produciuse durante unha hibernación anterior do sistema e impediu que " "se retomase adecuadamente." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "O proceso de recuperación colgouse moi cerca do final e debeu parecer como " "que se remataba normalmente." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Prema calquera tecla para seguir..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Que quere facer? As opcións que ten son:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Escolla (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Unha vez enviado o informe do problema, encha o formulario no navegador web " "que se abrirá automaticamente." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "E&nviar informe (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examinar localmente" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Ver o informe" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Gardar o ficheiro co informe para envialo máis tarde ou para copialo noutro " "sitio" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Cancelar e &ignorar fallos futuros desta versión do programa" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Cancelar" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Ficheiro co informe do problema:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirmar" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Erro: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Pódeselles enviar a información recollida aos desenvolvedores para que\n" "melloren o aplicativo. Isto pode levar uns minutos." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Estase a enviar a información recollida ao sistema de seguimento de erros.\n" "Isto pode levar uns minutos." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Feito" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ningún" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Seleccionado: %s. Varias opcións:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Opcións" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Ruta ao ficheiro (Intro para cancelar):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "O ficheiro non existe." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Isto é un directorio" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Para continuar ten que visitar o URL seguinte:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Pode executar un navegador agora, ou copiar este URL a un navegador en outro " "equipo." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Executar un navegador agora" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Non hai informes de fallos pendentes. Tente --help para máis información." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Informe completo (recomendado; %s)" #~ msgid "&Details..." #~ msgstr "&Detalles..." #~ msgid "_Send Report" #~ msgstr "_Enviar informe" #~ msgid "Generic error" #~ msgstr "Erro xenérico" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Unha vez enviado o problema, encha o formulario no navegador web que se " #~ "abrirá automaticamente." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "E&nviar un informe completo (recomendado; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Informe reducido (Conexión a internet lenta; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorar no futuro fallos desta versión do programa" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Enviar un informe &reducido (conexións lentas á internet; %s)" #~ msgid "&Report Problem..." #~ msgstr "Info&rmar dun problema..." #~ msgid "_Report Problem..." #~ msgstr "_Informar do problema..." #~ msgid "&Send" #~ msgstr "&Enviar" #~ msgid "Kernel problem" #~ msgstr "Problema no núcleo" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Este non é un paquete xenuíno para %s" #~ msgid "Content of the report" #~ msgstr "Contido do informe" #~ msgid "Package problem" #~ msgstr "Problema no paquete" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "O sistema atopouse cun problema serio do kernel." #~ msgid "Restart &Program" #~ msgstr "Reiniciar o &programa" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Isto aconteceu durante unha suspensión anterior e evitou que se reiniciase " #~ "axeitadamente." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Isto aconteceu durante unha hibernación anterior e evitou que se reiniciase " #~ "axeitadamente." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "" #~ "%prog [opcións] <informe de problema de apport | identificador do fallo>" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Se non estaba a facer nada confidencial (introducir un contrasinal ou\n" #~ "outra información privada), pode axudar a mellorar o aplicativo informado\n" #~ "do problema." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Se non estaba a facer nada confidencial (introducindo contrasinais ou outra " #~ "información privada) pode axudar a mellorar o aplicativo informando do " #~ "problema." #~ msgid "Application problem" #~ msgstr "Problema no aplicativo" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s pechouse inesperadamente en %s ás %s." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Non se puido instalar ou anovar o paquete \"%s\"." #~ msgid "Restart _Program" #~ msgstr "Reiniciar o _programa" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "o número de parámetros é incorrecto; empregue --help para unha pequena axuda" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "De todos os xeitos é preciso que faga unha operación local (-s, -g, -o) ou " #~ "fornecer un ficheiro de autenticación (--auth); vexa --help para obter unha " #~ "breve axuda" #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Desculpe, %s pechouse inesperadamente" #~ msgid "Send this data to the developers?" #~ msgstr "Enviar estes datos aos desenvolvedores?" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Desculpe, non se puido instalar ou actualizar o paquete «%s»." #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ignorar futuras quebras desta versión do programa" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Desculpe, o programa «%s» pechouse inesperadamente." #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Desculpe, «%s» pechouse inesperadamente." #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Isto eliminará algúns elementos grandes do informe. Estes son moi útiles " #~ "para que os desenvolvedores depuren o problema, mais poden resultarlle moi " #~ "grandes para envialos se dispón dunha conexión lenta a internet." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Pode axudar a que os desenvolvedores arranxen o problema informando sobre el." #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Enviarlles un informe do problema aos desenvolvedores?</b></big>\n" #~ "\n" #~ "Unha vez enviado o informe sobre o problema, encha o formulario na xanela do " #~ "navegador que se abrirá automaticamente." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Pode axudar aos desenvolvedores a arranxar o paquete enviándolles un informe " #~ "acerca do problema." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Desculpe, non foi posíbel instalar ou " #~ "anovar o paquete «%s».</span>." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Desculpe, o aplicativo %s pechouse de maneira inesperada." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "É posíbel que o seu sistema quedase inestábel e quizais precise reinicialo." ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/gu.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000114143�14416106601�011446� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Gujarati translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: raj <Unknown>\n" "Language-Team: Gujarati <gu@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: gu\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "તમારે કેટલાક કાલગ્રસ્ત પેકેજ સ્થાપીત થયેલ છે. કૃપયા નિમ્નલિખિત પેકેજો ઊંચી " "કક્ષાએ ચડાવો અને તપાસો કે મુશ્કેલી હજુ જોવા મળે છે:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "અજાણયો પ્રોગ્રામ" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "માફ કરશો, પ્રોગ્રામ %s એકાએક બંધ થયો છે" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s માં તકલીફ છે" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "તમારા કૉમ્પ્યૂટર માં મુશ્કેલીનુ આપોઆપ વિશ્લેષણ કરવા માટે અને ડેવલોપરોને " "રિપૉર્ટ (હકીકત) મોકલાવવા માટે પુરતા પ્રમાણ માં મુકત મેમરી નથી." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "અપ્રમાણ મુશ્કેલી રિપૉર્ટ" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "આપને મુશ્કેલી રિપૉર્ટ જોવાની પરવાનગી નથી." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "આ રિપૉર્ટ ને આગળ વધારવા માટે પુરતી માત્રામાં ડિસ્ક સ્પેઇસ મોજુદ નથી." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "કોઈ પેકેજ જણાવેલ નથી" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "તમારે ચોક્કસ પેકેજ અથવા પીઆઈડી નો ઉલ્લેખ કરવાની જરૂર છે. વધુ વિઞત માટે --મદદ " "જુઓ." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "જણાવેલ પ્રોસેસ તમારી સાથે જોડાયેલી નથી. મહેરબાની કરીને આ પ્રોગ્રામ તમે " "પ્રોસેસ ના માલિક અથવા રૂટ તરીકે ચલાવો." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "અમાન્ય પીઆઈડી" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "જણાવેલ પ્રોસેસ આઈડી પ્રોગ્રામ સાથે જોડાયેલું નથી." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "પેકેજ %s નુ અસ્તિત્વ નથી" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "કયા પ્રકારનો પ્રશ્ન આપ રજૂ કરવા માગો છો?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "અજાણયુ ચિહ્ન" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "ચિહ્ન %s જાણીતુ નથી." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "પેકેજ ના નામનો --ફાઇલ-બગ મોડ માં ઉલ્લેખ કરો. આ વૈકલ્પિક છે જો --પીઆઈડી નો " "ઉલ્લેખ હોય. (સૂચિત જો ચિહ્ન નુ નામ ફકત આર્ગ્યૂમેન્ટ તરીકે આપેલ હોય.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "પતન વિશે ની રજુઆત નિકાલ ન થયેલા %s ના બદલે આપેલી .અપોર્ટ અથવા .ક્રૅશ ફાઈલ " "માંથી કરો. (સૂચિત જો એક આર્ગ્યૂમેન્ટ આપેલ હોય.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "અપોર્ટ વર્ઝન નંબર ની નકલ કાઢો." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "આ મુશ્કેલી અહેવાલ પ્રોગ્રામને લાગુ પડે છે જે હવે વધુ કાંઇ સ્થાપીત નથી." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "આ સમસ્યા રિપૉર્ટ નુકસાન પામેલ છે અને આગળ વધી નહી શકાય." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "આ રિપૉર્ટ પેકેજ સાથે જોડાયેલ છે જે ઇન્સ્ટોલ (સ્થાપીત) થયેલ નથી." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "પેકેજ અથવા સૉર્સ પેકેજ નુ નામ શોધી નથી શકાયુ." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "વેબ બ્રાઊઝર શરુ કરવામાં સમર્થ નથી." #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "%s ને ખોલવા માટે વેબ બ્રાઊઝર શરુ કરવામાં સમર્થ નથી." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "મહેરબાની કરીને %s બગ ટ્રૅકીંગ સિસ્ટમ માટે તમારી અકાઉન્ટની માહીતી દાખલ કરો" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "નેટવર્ક માં સમસ્યા" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "ક્રૅશ ડેટાબેઞ સાથે જોડાણ થઈ શકે તેમ નથી. મહેરબાની કરીને તમારા ઈનટરનેટનુ " "જોડાણ તપાશો." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "મેમરીની થકાવટ" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "આ ક્રૅશ રિપૉર્ટ ને પ્રોસેસ કરવા માટે તમારી સિસ્ટમમાં પૂરતી મેમરી નથી." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "સમસ્યા રજુ નહી કરી શકાય:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "મુશ્કેલી પહેલાંથી જાણીતી છે." #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "આ સમસ્યા વેબ બ્રાઊઝરમાં દેખાતા બગ રિપૉટમાં પહેલાંથી રજુ કરેલ છે. મહેરબાની " "કરીને ચકાસો કે તમે વધુ માહીતી ઊમેરી શકો છો કે જે ડેવલોપરો માટે ઊપયોગી થઈ શકે." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "ચાલુ રાખવું માટે કોઈપણ કી દબાવો..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "તમે શુ કરવાનુ પસંદ કરશો? તમારા વિકલ્પો છે:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "મહેરબાની કરીને પસંદ કરો (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "આ પ્રોગ્રામ વર્ઝનના ભવિષ્યના ક્રૅશો ની અવગણના કરો અને રદ કરો." #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&રદ કરો" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "આ અસલ %s પેકેજ નથી" #~ msgid "&Report Problem..." #~ msgstr "&સમસ્યા ને રજુ કરો." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "જો તમે કઈ ખાનગી ન કરી રહયા ન હોય (પાસવર્ડ દાખલ કરતા અથવા અન્ય\n" #~ "ખાનગી માહીતી), તમે સમસ્યા ને રજુ કરીને આ ઍપ્લિકેશનને વધુ સારી બનાવવા \n" #~ "મદદ કરી શકો છો." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s અનપેક્ષિત રીતે %s ના રોજ %s વાગે બંધ થયો છે." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/he.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000135267�14416106601�011441� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Hebrew translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Ofir Klinger <klinger.ofir@gmail.com>\n" "Language-Team: Hebrew <he@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: he\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "ביטול" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "אישור" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "דוח קריסה" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>אירעה שגיאה פנימית, עמך הסליחה.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "אם הבחנת בבעיות נוספות, כדאי לנסות להפעיל את המחשב מחדש." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "שליחת דוח שגיאה כדי לסייע בתיקון בעיה זו." #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "התעלמות בתקלות עתידיות בגרסת תכנית זו" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "הצגת פרטים" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_בדיקה מקומית" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "להשאיר סגור" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "להמשיך" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>אוסף מידע אודות התקלה</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "המידע נאסף כדי לעזור למפתחים לתקן את התקלה עליה אתה מדווח." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "מעלה את פרטי התקלה" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>מעלה את נתוני התקלה</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "המידע שנאסף נשלח כעת למערכת המעקב אחר התקלות. פעולה זו עלולה להמשך מספר דקות." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "קובץ קריסה של Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(נתונים בינריים)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "היישום %s הפסיק לפעול במפתיע, עמך הסליחה." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "היישום %s נסגר במפתיע, עמך סליחה." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "היישום %s סבל משגיאה פנימית, עמך הסליחה." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "האם לשלוח דוח תקלה למפתחים?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "שליחה" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "לסגור בכוח" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "הפעלה מחדש" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "היישום %s הפסיק להגיב." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "התכנית \"%s\" הפסיקה להגיב." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "חבילה: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "אירעה תקלה בעת התקנת תוכנות, עמך הסליחה." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "היישום %s נתקל בתקלה פנימית." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "היישום %s נסגר במפתיע" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "התעלמות מתקלות חוזרות ונשנות מסוג זה" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "הסתרת הפרטים" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "ספריית היעד קיימת ואינה ריקה." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "נאספים נתונים על התקלה" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "אוסף מידע אודות התקלה" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "ניתן לשלוח את המידע שנאסף למפתחים כדי לשפר את התכנה. פעולה זו עלולה להמשך " "מספר דקות." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "נתוני התקלה נשלחים" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "איסוף מידע על המערכת" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "נדרש אימות כדי לאסוף פרטים לדוח תקלה זה" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "דיווחי תקלות במערכת" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "נא להזין את הססמה שלך כדי לגשת לדיווחים על תקלות שנמצאו בתכניות המערכת" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "דיווח על תקלה..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "דיווח על תפקוד לקוי למתכנתים" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "יש לעיין בדף ה־man לקבלת פרטים נוספים." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "נא לציין את שם קובץ הרישום שנוצר על ידי valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "התקנת חבילה נוספת לתוך ארגז החול (ניתן לציין מספר פעמים)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "המערכת שלך עלולה להפוך לבלתי יציבה כעת ויתכן שיהיה צורך בהפעלת המחשב מחדש." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "אין להוסיף את העקבות החדשים אל הדוח, אך יש לכתוב אותם אל stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "התחלת מופע אינטראקטיבי של gdb עם איסוף הליבה של הדוח (‎-o ignored; הדוח לא " "ישוכתב)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "יצירת ארז חול זמני ולהוריד/להתקין את החבילות ההכרחיות ואת סמלי ניפוי " "השגיאות; ללא אפשרות זאת המערכת תניח שהחבילות ההכרחיות ושסמלי ניפוי השגיאות " "כבר מותקנים במחשבך. הארגומנט מפנה לתיקיית מסד תצורת מערכת החבילות; אם " "הארגומנט יהיה „system“, ייעשה שימוש בקובצי התצורה של המערכת אך במצב כזה ניתן " "יהיה רק לעקוב מחדש אחר הקריסות שהתחרשו בהפצה הפעילה הנוכחית." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "דיווח על תהליך של הורדה/התקנה בעת התקנת חבילות בתוך ארגז החול" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "הוספת קידומת חותמת זמן להודעות ביומן, לצורך פעולות אצווה" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "תיקיית המטמון לחבילות שהורדו בארגז החול" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "ספרייה של חבילות בלתי ארוזות. הפעלות עתידיות יניחו שכל חבילה שכבר הורדת " "תחולץ גם כן לארגז חול זה." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "נתיב לקובץ עם פרטי האימות מול מסד נתוני הקריסות. בקובץ ייעשה שימוש בעת ציון " "מזהה קריסה כדי לעלות מעקבי מחסניות מחודשים (רק אם לא צוינו ‎-g, -o, או ‎-s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "הצגת מעקבי מחסניות מחודשים ובקשת אישור בטרם שליחה למסד נתוני הקריסות." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "האם זה בסדר לשלוח קבצים מצורפים אלה? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "מסתבר כי חבילה זו אינה מותקנת כראוי" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "זוהי אינה חבילה רשמית של %s. נא להסיר כל חבילת צד־שלישי שהיא ולנסות שוב." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "חלק מהגרסאות של חבילות התכנה שלך מיושנות. נא לשדרג את החבילות הבאות ולבדוק " "אם הבעיה עדיין מתרחשת:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "תכנית בלתי מוכרת" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "התכנה „%s“ נסגרה במפתיע, עמך הסליחה" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "תקלה ב-%s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "למחשבך אין די זכרון פנוי כדי לנתח את התקלה אוטומטית ולשלוח דוח למפתחים." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "דוח תקלה שגוי" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "אינך מורשה לגשת לדוח תקלה זה." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "שגיאה" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "אין די שטח פנוי בכונן כדי לעבד דוח זה." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "לא צויינה כל חבילה" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "עליך לציין חבילה או מזהה תהליך. עיין ב --help לקבלת מידע נוסף." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "הגישה נדחתה" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "התהליך שצויין אינו שייך לך. נא להריץ תוכנה זו כבעל התהליך או כמנהל (root)." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "מזהה התהליך שגוי" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "מזהה התהליך שצויין אינו שייך לאף תוכנית." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "החבילה %s אינה קיימת" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "דוח הבעיה מתעדכן" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "בעיה זו לא דווחה על ידיך במקור. עדיף לסמן באג ככפול מאשר להעביר את ההערות " "ואת הקבצים המצורפים אליו לבאג חדש.\n" "\n" "כתוצאה מכך, ההמלצה היא ליצור דוח שגיאות חדש באמצעות \"apport-bug\" ולהעיר שם " "על התקלה שדווחה.\n" "\n" "האם ברצונך להמשיך?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "מהי הבעיה עליה ברצונך לדווח?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "תסמין לא מוכר" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "התסמין „%s“ אינו מוכר." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "נא לציין את שם החבילה." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "התחלה במצב מילוי שגיאות. נדרש ‎--package ו־‎--pid (לא חובה), או ‎--pid בלבד. " "אם אף אחד מאלה לא הוזן, תוצג רשימה של סימפטומים ידועים. (מרומז במקרה שצוין " "ארגומנט יחיד.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "הגשת דיווח על תסמין. (מרומז אם שם התסמין ניתן רק כארגומנט.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "יש לציין תכנית פעילה במצב ‎--file-bug. אם פרמטר זה יתווסף דיווח הבאג יכיל " "מידע נוסף. (כלומר שהמזהה התהליך, ה־pid, ניתן כארגומנט בלבד.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "ה־pid (מזהה היישום) שסופק מצביע על יישום תקוע." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "דיווח על התקלה מקובץ ‎.apport או ‎.crash נתון במקום אלו שממתינים ב־%s. " "(מרומז אם ניתן קובץ כארגומנט יחיד.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "הצגת מספר הגרסה של Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "פעולה זו תפעיל את apport-retrace בחלון מסוף כדי לנתח את הקריסה." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "הפעלת gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "הפעלת gdb מבלי להוריד סימני ניפוי שגיאות" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "עדכון %s במעקב ערימה בסמליות מלאה" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "דיווח תקלה זה חל על תכנית שאינה מותקנת עוד." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "התקלה אירעה בתכנית %s שהשתנתה מאז קריסתה האחרונה." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "דוח תקלה זה פגום ולכן לא ניתן לעבד אותו." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "הדוח שייך לחבילה שאינה מותקנת." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "אירעה שגיאה במהלך ניסיון עיבוד דוח תקלה זה:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "לא ניתן לאתר את החבילה או את שם חבילת המקור." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "לא ניתן להפעיל את דפדפן האינטרנט." #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "לא ניתן להפעיל את דפדפן האינטרנט כדי לפתוח את %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "נא להזין את נתוני החשבון שלך עבור מערכת דיווח התקלות %s." #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "תקלת רשת" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "לא ניתן להתחבר אל מסד נתוני הקריסות, יש לבדוק את החיבור לאינטרנט." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "תשישות הזכרון" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "למערכת שלך אין די זכרון פנוי כדי לעבד דוח תקלה זה." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "לא ניתן לדווח על תקלה זו:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "התקלה כבר ידועה" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "תקלה זו כבר דווחה בדוח התקלה המוצג בדפדפן האינטרנט. נא לבדוק האם ניתן להוסיף " "מידע נוסף שעלול לעזור למפתחים בפתרון התקלה." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "תקלה זו כבר דווחה למתכנתים. תודה רבה!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "תהליך חזרת המחשב לפעולה נתקע ממש לקראת הסוף ונראה כאילו הוא הסתיים כרגיל." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "לחץ על מקש כלשהו להמשך..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "מה ברצונך לעשות? אפשרויותיך הן:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "נא לבחור (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "לאחר שדיווח אודות התקלה נשלח, נא מלאו את הטופס\n" "בדפדפן האינטרנט שנפתח אוטומטית." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&שלח דוח (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&ניתוח מקומי" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "ה&צג דוח" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "&שמור על קובץ הדוח לשליחה מאוחרת או העתקה למיקום אחר" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "בטל והת&עלם מקריסות עתידיות של גירסה זו של התוכנה" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&ביטול" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "קובץ דיווח התקלה:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&אשר" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "שגיאה: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "ניתן לשלוח את המידע שנאסף למפתחים כדי לשפר את היישום.\n" "פעולה זו עלולה להמשך מספר דקות." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "המידע שנאסף נשלח כעת אל מערכת המעקב אחר התקלות.\n" "פעולה זו עלולה להמשך מספר דקות." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&סיום" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ללא" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "נבחרו %s. בחירות מרובות:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "בחירות" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "נתיב אל הקובץ (Enter לביטול):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "הקובץ אינו קיים." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "זוהי תיקייה." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "כדי להמשיך, עליך לבקר בכתובת הבאה:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "ניתן לטעון את הדפדפן כעת, או להעתיק את הכתובת הזאת לדפדפן במחשב אחר." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "טעינת הדפדפן כעת" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "אין דיווחי קריסות בהמתנה. נסו --help לקבלת מידע נוסף." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "התקנת או שדרוג החבילה \"%s\" נכשלו." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "דוח שלם (מומלץ; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>האם לשלוח את דוח התקלה למפתחים?</b></big>\n" #~ "\n" #~ "לאחר שדוח התקלה נשלח, אנא מלא את הטופס הנפתח אוטומטית בדפדפן האינטרנט." #~ msgid "Application problem" #~ msgstr "תקלת יישום" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "במידה ולא ביצעת כל פעולה חשאית (הזנת סיסמאות או מידע פרטי אחר כלשהו), תוכל " #~ "לעזור לשפר את היישום על ידי דיווח אודות התקלה." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s נסגר במפתיע תחת %s ב- %s." #~ msgid "Restart _Program" #~ msgstr "הפעל את התוכנה מחדש" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">אנו מתנצלים, עדכון או שדרוג החבילה " #~ "\"%s\" נכשל.</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&שלח דוח מלא (מומלץ; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "דוח מצומצם (חיבור איטי לאינטרנט; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "ה_תעלם מקריסות עתידיות של גירסה זו של התוכנה" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "שלח דוח &מצומצם (לחיבור אינטרנט איטי; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "פעולה זו תסיר כמה פריטים גדולים מהדוח. אלו מאוד שימושיים למפתחים לצורך איתור " #~ "השגיאה, אך עלולים להיות גדולים מדי עבורך להעלאה במידה ויש לך חיבור אינטרנט " #~ "איטי." #~ msgid "&Report Problem..." #~ msgstr "&דווח על תקלה..." #~ msgid "_Report Problem..." #~ msgstr "_דווח על תקלה..." #~ msgid "Kernel problem" #~ msgstr "תקלת ליבה" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "תוכל לעזור למפתחים לתקן את החבילה על ידי דיווח על התקלה." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "זוהי אינה חבילת %s מקורית" #~ msgid "Content of the report" #~ msgstr "תוכן הדוח" #~ msgid "Package problem" #~ msgstr "תקלת חבילה" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "תוכל לסייע למפתחים לתקן את התקלה על ידי דיווח עליה." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "המערכת נתקלה בבעיה רצינית בליבה." #~ msgid "_Send Report" #~ msgstr "_שלח דוח" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "במידה ולא עשית שום דבר חסוי (כמו הזנת סיסמאות או מידע פרטי), תוכל לעזור " #~ "בשיפור היישום באמצעות דיווח על הבעיה." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "תופעה זו נגרמה במהלך השהיה קודמת ומנעה מהתהליך להמשיך כראוי." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "תופעה זו נגרמה במהלך תרדמת קודמת ומנעה מהתהליך להמשיך כראוי." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "היישום %s נסגר במפתיע, עמך הסליחה." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/hi.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000116273�14416106601�011441� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Hindi translation for apport # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2007. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2012-07-30 10:06+0000\n" "Last-Translator: Manish Kumar <manishku86@yahoo.co.in>\n" "Language-Team: Hindi <hi@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: hi\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "क्रैश रिपोर्ट" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>क्षमा करें, एक आंतरिक त्रुटि हुई.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "विवरण दिखाएँ" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "जारी रखें" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "भेजें" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "पुन: लॉन्‍च करें" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "विवरण छिपाएँ" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "ऐसा लगता है कि इस पैकेज को सही ढंग से स्थापित नहीं करा गया है" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "यह एक आधिकारिक % s पैकेज नहीं है. किसी भी तीसरे पक्ष के पैकेज को हटाऐं और " "फिर कोशिश करें." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "आपके के पास कुछ लुप्तप्राय पैकेज के संस्करण संस्थापित हैं. कृपया निम्नलिखित " "पैकेजों का उन्नयन करें और अभी भी समस्या आने पर पुन: जाँच करेंः\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "अज्ञात प्रोग्राम" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "क्षमा करें, %s प्रोग्राम अनपेक्षित ढंग से बंद हो गया।" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s में समस्या" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "आपके कंप्युटर में समस्या का स्वतः विश्लेषण करने और विकासकर्ताओं को सूचित " "करने के लिये पर्याप्त रिक्त स्मृति नहीं है।" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "अमान्य समस्या सूचना" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "इस समस्या रिपोर्ट में आपके पहुँच की अनुमति नहीं है." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "त्रुटी" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "इस रिपोर्ट को प्रक्रिया करने हेतु डिस्क में प्रर्याप्त जगह उपलब्ध नहीं है." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "आपको पैकेज या PID का विशिष्ट निर्देश देना होगा. अधिक जानकारी के लिए --help " "देखें." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "अनुमति निषेधित" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "यह आपका विशिष्ट निर्देश नहीं है. कृपया इस प्रोग्राम को प्रक्रिया " "उत्तराधिकारी के रुप में या रुट में चलाएं." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "अवैध पीआईडी" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "विशिष्ट निर्देश आईडी प्रोग्राम का हिस्सा नहीं है." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "पैकेज %s मोजूद नहीं है" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "रिपोर्ट बनाई नहीं जा सकती" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "समस्या रिपोर्ट को अद्यतन कर रहा है" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "आप या तो इस समस्या रिपोर्ट का अभिदाता रिपोर्टर नहीं है, या रिपोर्ट दोहरा है " "या पुर्ववत बंद हो चुका है.\n" "\n" "कृपया \"apport-bug\" का उपयोग कर एक नया रिपोर्ट बनाएं." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "इस समस्या रिपोर्ट का आप रिपोर्टर नहीं है. अपने टिप्पणी के साथ नए बग को " "संलग्न करने की तुलना में यह ज्याद आसान होगा कि बग को अन्य का नकल के रुप में " "रेखांकित किया जाए.\n" "\n" "पश्चात, हम सलाह देंगे कि आप जो रिपोर्ट भेजेगें उसमें नए बग रिपोर्ट को " "\"apport-bug\" का उपयोग कर तथा इस बग में अपनी टिप्पणी करें.\n" "\n" "क्या आप आगे की प्रक्रिया करेंगें?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "अतरिक्त सूचना संगृहित नहीं की जाएगी." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "किस तरह की समस्या का आप रिपोर्ट करना चाहते हैं?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "अज्ञात लक्षण" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "यह लक्षण \"%s\" ज्ञात नहीं है." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "इस संदेश के बंद होने के पश्चात कृपया अनुप्रयोग विंडो पर क्लिक कर समस्या के " "बारे में रिपोर्ट करें." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop विंडो की प्रक्रिया आईडी को निर्धारित करने में असफल हो गया" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "संकुल नाम निर्दिष्ट करें." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "रिपोर्ट में एक अतरिक्त टैग जोड़े जिससे एकाधिक बार का उल्लेख हो सके." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "बग भरने की पद्धति में शुरु करें. आवश्यकता है --package तथा एक विकल्प --pid " "की या केवल एक --pid की. यदि कोई भी नहीं दिया हुआ हो, तो ज्ञात लक्षणों की " "सूची दिखाएं. (यदि एक ही तर्क दिया हो तो लागु करें.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "एक समस्या रपट दर्ज करने हेतु लक्ष्य विंडो पर क्लिक करें." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "बग अद्यतन पद्धति में चालु करें. एक विकल्प --package ले सकते हैं ." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "लक्षण के बारे में एक बग रिपोर्ट दाखिल करें. (जब लक्षण के नाम केवल तर्क के " "रुप में दिया गया हो तो लागु करें.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "पैकेज का नाम --file-bug पद्धति में वर्णन करें. यह वैकल्पिक होगा यदि एक --pid " "का वर्णन होगा. (जब पैकेज का नाम केवल तर्क के रुप में दिया गया हो तो लागु " "करें.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "एक चल रहे प्रोग्राम --file-bug पद्धति में का उल्लेख करें. यदि इसका उल्लेख " "है, तो दोष रपट अधिक सूचनात्मक हो जाएगा.(यह लागू हो यदि pid में केवल तर्क " "दिया होगा.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "विध्वंस रिपोर्ट को दिए गए .apport या .crash संचिका से करें बजाए %s में जो " "विचाराधीन है. (यदि तर्क के रुप में केवल संचिका दिया गया हो.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "यह समस्या सूचना क्षतिग्रस्त है तथा संसाधित नहीं की जा सकती." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "यह सूचना एक असंस्थापित पैकेज से संबंधित है ." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/hr.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000134643�14416106601�011453� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Croatian translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:45+0000\n" "Last-Translator: gogo <trebelnik2@gmail.com>\n" "Language-Team: Croatian <hr@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: hr\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Odustani" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "U redu" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Izvještaj rušenja" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Nažalost, dogodila se unutrašnja greška.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Ako primjetite daljne probleme, pokušajte ponovno pokrenuti računalo." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Pošaljite izvješće greške kako bi pomogli popraviti ovaj problem" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Zanemari buduće probleme za progam ove inačice" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Prikaži pojedinosti" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Pregledaj lokalno" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Ostavi zatvoreno" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Nastavi" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Sakupljanje podataka o problemu</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Skupljaju se informacije koje mogu pomoći razvojnom timu pri rješavanju " "problema koje prijavljujete." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Slanje informacija o problemu" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Učitavanje informacija o problemu</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Prikupljene informacije se šalju sustavu za praćenje grešaka. Ovo može " "potrajati nekoliko minuta." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport datoteka o rušenju" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binarni podatci)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Aplikacija %s je neočekivano zaustavljena." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "%s se neočekivano zatvorio." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "%s je iskusio unutrašnju grešku." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Pošaljite izvještaj o problemu razvojnom timu?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Pošalji" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Prisilno zatvoreno" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Pokreni ponovo" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Aplikacija %s više ne odgovara." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Program \"%s\" više ne odgovara." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paket: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Problem se dogodio tijekom instalacije softvera." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Aplikacija %s je iskusila unutrašnju grešku." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Aplikacija %s se zatvorila neočekivano." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Zanemari buduće probleme ove vrste" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Sakrij pojedinosti" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Upotreba: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Odredišni direktorji postiji i nije prazan." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Korisničko Ime:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Lozinka:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Prikupljanje Informacija o Problemu" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Skupljanje informacija o problemu" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Prikupljene informacije mogu biti poslane razvijateljima kako bi se " "aplikacija poboljšala. Ovo može potrajati nekoliko minuta." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Prenos Informacija o Problemu" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Prikupljanje informacija o sustavu" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Ovjera je potrebna za prikupljanje informacija o sustavu za ovaj izvještaj " "problema" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Izvještaji o problemu sustava" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Upišite svoju lozinku za pristup izvještajima problema programa sustava" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Prijavite problem..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Prijavite neispravnost razvojnom timu" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Pogledajte man stranice za više pojedinosti." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "odredi naziv datoteke zaspisa koju je stvorio valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "ponovno koristi prije stvoreni sandbox direktorij (SDIR) ili, ako ne " "postoji, stvori ga" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "ne stvaraj ili ponovno koristi sandbox direktorij za dodatne simbole " "otklanjanja greške nego se samo oslanjaj na instalirane simbole otklanjanja " "greške." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "ponovno koristi prije stvoreni direktorij predmemorije (CDIR) ili, ako ne " "postoji, stvori ga" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "prijavi napredak preuzimanja/instalacije prilikom instalacije paketa u " "sandbox" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "izvršna datoteka koja se pokreće pod valgrindovim alatom provjere memorije " "zbog otkrivanja problema s memorijom" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "Instaliraj dodatne pakete u sandbox (može se odrediti više puta)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Greška: %s nije izvršna datoteka. Zaustavljanje." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Ne spremaj nove podatke u izvještaj, već ih zapiši u stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Pokreni interaktivnu gdb sesiju s izvještajima sadržaja jezgre (-o " "zanemareno; ne prepisuje izvještaj)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Zapiši izmijenjen izvještaj za zadanu datoteku umjesto promjene izvornog " "izvještaja" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Ukloni sadržaj jezgre iz izvještaja nakon regeneracije opširnog zapisa" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Zaobiđi datoteku jezgre izvještaja" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Zaobiđi izvršnu putanju izvještaja" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Zaobiđi ProcMaps izvještaja" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Obnovi izvješća o informacijama paketa." #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Izgradi privremeni sandbox i preuzmi/instaliraj potrebne pakete i simbole " "otklanjanja greške, bez ove mogućnosti pretpostavljeno je da već imate " "instalirane potrebne pakete i simbole otklanjanja greške na sustavu. " "Argument ukazuje na sustav podešavanja paketa osnovnog direktorija, ako " "odredite \"sustav\", koristit će se datoteke podešavanja sustava, ali će " "onda samo biti moguće zapisivati rušenja koja su se dogodila na trenutno " "pokrenutom izdanju." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Prijavi napredak preuzimanja/instalacije tijekom instalacije paketa u sandbox" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Dodaj vremenske oznake u poruke zapisa, za skupne radnje" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Stvori i koristi repozitorije treće strane iz izvora navedenih u izvješću" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Direktorij predmemorije za pakete preuzete u sandboxu" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Direktorij za neraspakirane pakete. Buduća pokretanja će pretpostaviti da " "svaki preuzeti paket je isto tako raspakiran u sandboxu." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Putanja do datoteke s informacijom ovjere baze podataka rušenja. To se " "koristi pri određivanju ID-a rušenja za slanje ponovljenog opširnog " "zapisivanja (samo ako su -g, -o, ili -s određeni)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Prikaži ponovljeno opširno zapisivanje i traži potvrdu prije slanja u bazu " "podataka rušenja." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Putanja do kopije sqlite baze podataka (zadano: bez provjere ima li još " "kopija)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Ne možete koristiti -C bez -S. Zaustavljanje." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Jeli u redu otposlati ove privitke? [d/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Izgleda da ovaj paket nije ispravno instaliran" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ovo nije službeni %s paket. Uklonite sve pakete treće strane i pokušajte " "ponovno." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Imate instalirane neke zastarjele inačice paketa. Nadogradite sljedeće " "pakete i provjerite ponavlja li se problem:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "nepoznati program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Isprika, program \"%s\" se neočekivano zatvorio" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problem u %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Vaše računalo nema dovoljno slobodne memorije za automatsku analizu problema " "i slanje izvještaja razvijateljima." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Neispravan izvještaj o problemu" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Niste ovlašteni za pristup ovom izvještaju o problemu." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Greška" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Nema dovoljno prostora na disku za obradu ovog izvještaja." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nema određenih paketa" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Morate odrediti paket ili PID. Pogledajte --help za više informacija." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Pristup odbijen" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Određeni proces vam ne pripada. Pokrenite ovaj program kao root korisnik." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Neispravan PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Određeni ID proces ne pripada programu." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Skripta simptoma %s nije odredila zahvaćeni paket" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Paket %s ne postoji" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Ne mogu napraviti izvještaj" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Nadopuna izvještaja problema" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Niste autor ili pretplatnik ovog izvještaja problema, moguće da je izvještaj " "kopija ili je već zatvoren.\n" "\n" "Napravite novi izvještaj koristeći \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Niste autor ovog izvještaja problema. Mnogo je jednostavnije označiti " "problem kao kopiju drugog izvještaja nego premještati vaše komentare i " "privitke na novi izvještaj.\n" "\n" "Nadalje, predlažemo vam prijavu novog izvještaja problema koristeći \"apport-" "bug\" i dodajte komentar o ovom problemu.\n" "\n" "Želite li stvarno nastaviti?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Nisu prikupljene dodatne informacije." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Kakav problem želite prijaviti?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Nepoznat simptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Simptom \"%s\" nije poznat." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Nakon zatvaranja ove poruke kliknite na prozor aplikacije za prijavu ovog " "problema." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop nije uspio odrediti proces ID prozora" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <broj izvještaja>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Odredite naziv paketa." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Dodajte dodatnu oznaku u izvještaj. Moguće je odrediti više puta." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [mogućnosti] [simptom|pid|paket|program putanja|.apport/.crash " "datoteka]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Početak načina prijave greške. Zahtijeva --package i po izboru --pid, ili " "ukratko samo --pid. Ako ni jedno nije navedeno, prikaži popis poznatih " "simptoma. (Podrazumijeva se ako je jedan argument zadan.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Kliknite na prozor kao cilj za podnošenje izvještaja o problemu." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Početak načina nadopune greške. Može se dodati po izboru --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Prijavi izvještaj greške o simptomu. (Podrazumijeva ako je naziv simptoma " "naveden kao jedini argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Navedite naziv paketa u --file-bug načinu. Ovo nije obavezno ako je --pid " "naveden. (Podrazumijeva se ako je naziv paketa naveden kao jedini argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Navedite pokrenuti program u --file-bug načinu. Ako je naveden, izvještaj " "greške će sadržavati više informacija. (Podrazumijeva se ako je pid naveden " "kao jedini argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Zadani pid prekida aplikaciju." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Prijavite rušenje za zadanu .apport ili .crash datoteku umjesto onih " "nezavršenih u %s. (Podrazumijeva se ako je datoteka zadana kao jedini " "argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "U načinu prijave greške, spremite prikupljene informacije u datoteku umjesto " "da je prijavite. Ta datoteka se zatim kasnije može prijaviti s drugog " "računala." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Ispiši broj Apport inačice." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "To će pokrenuti apport-retrace u prozoru terminala zbog ispitivanja rušenja." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Pokreni gdb sesiju" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Pokreni gdb sesiju bez preuzimanja simbola otklanjanja greške" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Nadopuni %s s potpunim simboličkim opširnim zapisom" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Ovaj izvještaj problema se odnosi na program koji više nije instaliran." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Dogodio se problem s programom %s koji se promijenio otkada se srušio." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Ovaj izvještaj o problemu je oštećen i ne može biti obrađen." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Izvještaj pripada paketu koji nije instaliran." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Došlo je do greške pri pokušaju obrade izvještaja problema:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Ne može se odrediti paket ili naziv izvornog paketa." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Nemoguće pokretanje Internet preglednika" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Nemoguće pokretanje Internet preglednik za otvaranje %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Upišite informacije vašeg korisničkog računa za %s sustav praćenja grešaka" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problem s mrežom" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Nemoguće povezivanje na bazu podataka rušenja. Provjerite vaš pristup " "Internetu." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Nedostatak memorije" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Vaš sustav nema dovoljno memorije za obradu ovog izvještaja o rušenju " "sustava." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Ovaj problem se ne može se prijaviti:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problem je već poznat" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ovaj problem je već prijavljen u izvještaju grešaka koji je prikazan u " "internet pregledniku. Provjerite možete li dodati neke dodatne informacije " "koje mogu pomoći razvijateljima." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ovaj problem je već prijavljen razvijateljima. Hvala Vam!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Ovo je nastalo tijekom prijašnje suspenzije i spriječilo je ispravno " "pokretanje sustava." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Ovo je nastalo tijekom prijašnje hibernacije i spriječilo je ispravno " "pokretanje sustava." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Postupak pokretanja se prekinuo pred sam kraj i završit će se u potpunosti " "normalno." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Pritisnite bilo koju tipku za nastavak..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Što želite napraviti? Vaše mogućnosti su:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Molim odaberite (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bajtova)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Nakon slanja izvještaja o problemu, molimo ispunite formular u\n" "automatski otvorenom internet pregledniku." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Pošaljite izvještaj (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Pregledaj lokalno" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Pogledajte izvještaj" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Zadržite dokument izvještaja za kasnije slanje ili kopiranje na neko drugo " "mjesto" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Poništi i &ignoriraj buduća rušenja ove verzije programa" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Odustani" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Dokument izvještaja o problemu:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Potvrdi" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Greška: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Prikupljene informacije mogu biti poslane razvojnom timu kako bi se " "aplikacija\n" "poboljšala. To može potrajati nekoliko minuta." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Prikupljene informacije se šalju sustavu za praćenje grešaka.\n" "Ovo može potrajati nekoliko minuta." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Obavljeno" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "nijedno" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Označeno: %s. Višestruki izbori:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Izbori:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Putanja do datoteke ( Enter za prekid):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Datoteka ne postoji." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Ovo je direktorij." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Da biste nastavili, morate posjetiti sljedeći URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Sada možete pokrenuti pretreživač, ili kopirati URL u pretreživač na drugom " "računalu." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Sada pokrenite preglednik" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nema neposlanih izvještaja o rušenju. Pokušajte --help za više informacija." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Možete pomoći razvojnom timu da riješi problem prijavom istog." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Paket \"%s\" se nije uspio instalirati ili nadograditi" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Potpun izvještaj (preporučeno; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Poslati izvještaj o problemu razvojnom timu?</b></big>\n" #~ "\n" #~ "Nakon što je izvještaj o problemu poslan, molim ispunite formular u " #~ "automatski otvorenom internet pregledniku." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Ako niste radili nešto povjerljivo (unosili lozinke ili nešto slično), " #~ "možete pomoći u poboljšanju aplikacije prijavljivanjem problema razvojnom " #~ "timu." #~ msgid "Application problem" #~ msgstr "Problem s aplikacijom" #~ msgid "_Send Report" #~ msgstr "_Pošalji izvješće" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Ako niste radili ništa povjerljivo (unosili lozinke ili druge\n" #~ "privatne informacije), možete pomoći unaprijediti aplikaciju prijavom\n" #~ "problema." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s neočekivano prekinut na %s u %s." #~ msgid "Restart _Program" #~ msgstr "Ponovo pokreni _Program" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Nažalost, paket \"%s\" se nije uspio " #~ "instalirati ili nadograditi</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Pošaljite potpun izvještaj (preporučeno; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Sažeti izvještaj (spora Internet veza; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Zanemari buduća rušenja ove verzije programa" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Pošaljite &sažeti izvještaj (spora Internet veza; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Ovo će odstraniti neke veće dijelove izvještaja. Oni su vrlo korisni " #~ "razvojnom timu za otklanjanje problema, ali mogu biti preveliki za slanje " #~ "ako imate sporu vezu s internetom." #~ msgid "&Report Problem..." #~ msgstr "&Prijavi Problem..." #~ msgid "_Report Problem..." #~ msgstr "_Prijavi problem..." #~ msgid "Kernel problem" #~ msgstr "Problem s kernelom" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "I vi možete pomoći razvojnom timu da popravi paket prijavom problema." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Ovo nije izvorni %s paket" #~ msgid "Content of the report" #~ msgstr "Sadržaj izvještaja" #~ msgid "Package problem" #~ msgstr "Problem s paketom" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "Netočan broj argumenata; upotrijebite --pomoć(ili --help) za kratku pomoć." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ovo se dogodilo tijekom prijašnje suspenzije i uzrokovalo je nepravilno " #~ "pokretanje." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ovo se dogodilo tijekom prijašnje hibernacije i uzrokovalo je nepravilno " #~ "pokretanje." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Vaš sustav sada može postati nestabilan i možda treba biti ponovno pokrenut." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Nažalost, aplikacija %s se neočekivano zatvorila." ���������������������������������������������������������������������������������������������apport-2.20.11/po/hu.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000143112�14416106601�011445� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Hungarian translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Hungarian <hu@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: hu\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Mégse" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Ok" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Összeomlás-jelentés" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Elnézést, belső hiba történt.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Ha további problémákat észlel, próbálja meg újraindítani a számítógépet." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Hibajelentés küldése a probléma megoldásának elősegítéséhez" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ezen programverzió további problémáinak figyelmen kívül hagyása" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Részletek megjelenítése" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Vizsgálat helyileg" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Bezárva hagyás" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Folytatás" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Információgyűjtés a problémáról</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Információk gyűjtése, amelyek segíthetik a fejlesztőket a jelentendő " "probléma megoldásában." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "A hibával kapcsolatos információk feltöltése" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Hibainformációk feltöltése</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Az összegyűjtött információk elküldésre kerülnek a hibakövető rendszerbe. Ez " "eltarthat néhány percig." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport jelentésfájl" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(bináris adatok)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Elnézést, a(z) %s alkalmazás váratlanul leállt." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Elnézést, a(z) %s váratlanul befejeződött." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Elnézést, a(z) %s belső hibát észlelt." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Elküldi a hibajelentést a feljesztőknek?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Küldés" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Kényszerítve a bezárásra" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Újraindítás" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "A(z) %s alkalmazás nem válaszol." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "A(z) „%s” program nem válaszol." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Csomag: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Elnézést, hiba történt a szoftvertelepítés alatt." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "A(z) %s alkalmazás belső hibát észlelt." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "A(z) %s alkalmazás váratlanul befejeződött." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ilyen típusú problémák figyelmen kívül hagyása a jövőben" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Részletek elrejtése" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Használat: %s <jelentés> <célkönyvtár>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "A célkönyvtár létezik és nem üres." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Felhasználónév:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Jelszó:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Információgyűjtés a hibáról" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Információgyűjtés a hibáról" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Az összegyűjtött információk elküldhetők a fejlesztőknek az alkalmazás " "javítása érdekében. Ez eltarthat néhány percig." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "A hibával kapcsolatos információk feltöltése" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Rendszer-információk összegyűjtése" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "A hibajelentéshez szükséges rendszer-információk összegyűjtéséhez " "hitelesítés szükséges." #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Rendszerhiba-jelentések" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "Adja meg jelszavát a rendszerprogramok hibáinak eléréséhez" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Hiba jelentése…" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Hibás működés jelentése a fejlesztőknek" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Részletekért lásd a man oldalt." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "Adja meg a Valgrind naplófájl nevét" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "Korábban létrehozott sandbox mappa (SDIR) újra felhasználása, vagy ha nem " "létezik, létrehozása" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "Ne hozzon létre vagy használjon fel újra homokozó mappát további " "hibakeresési szimbólumokhoz, csak a telepített hibakeresési szimbólumokat " "használja." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "Korábban létrehozott gyorsítókönyvtár (CDIR) újra felhasználása, vagy ha nem " "létezik, létrehozása" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "Letöltési/telepítési folyamat jelentése csomagok telepítésekor a homokozóba" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "A végrehajtható, amelynek a memóriaszivárgását figyeli a Valgrind" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "Extra csomag homokozóba telepítése (többször is megadható)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Hiba: a(z) %s nem végrehajtható. Leállítás." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "A rendszer instabillá válhatott, és szükség lehet az újraindítására." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Ne tegye be az új nyomkövetéseket a jelentésbe, hanem írja ki a szabványos " "kimenetre." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Interaktív gdb munkamenet indítása a jelentés memóriakiíratásával (a -o " "figyelmen kívül marad, nem írja újra a jelentést)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Módosított jelentés írása a megadott fájlba az eredeti jelentés módosítása " "helyett" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "A veremkiíratás ismételt előállítása után a memóriakiíratás eltávolítása a " "jelentésből" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "A jelentés CoreFile-jának felülbírálása" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "A jelentés ExecutablePath-jának felülbírálása" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "A jelentés ProcMaps-jának felülbírálása" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "A jelentés csomaginformációinak újjáépítése" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Ideiglenes homokozó létrehozása, majd ebbe a szükséges csomagok, " "hibakeresési szimbólumok letöltése/telepítése; enélkül feltételezi, hogy a " "szükséges csomagok és hibakeresési szimbólumok már telepítve lettek. Az " "argumentum a csomagkezelő rendszer konfigurációs alapkönyvtárára mutat; a " "„system” esetén a rendszer konfigurációs fájljait használja, de ekkor csak " "az aktuálisan futó kiadás összeomlásait lesz képes nyomon követni." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Homokozóba történő telepítéskor a letöltés/telepítési folyamat kijelzése" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Helyezzen időbélyegeket a naplóüzenetek elé, a kötegelt működéshez" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Külső tárolók létrehozása és használata a jelentésekben megadott forrásokból" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Homokozóba letöltött csomagok gyorsítókönyvtára" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Kicsomagolt csomagok könyvtára. A jövőbeli futások feltételezik, hogy a már " "kicsomagolt csomagok ugyanebbe a homokozóba lesznek kicsomagolva." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Az összeomlási adatbázis hitelesítési információit tartalmazó fájl útvonala. " "Ez összeomlási azonosító megadásakor használatos az ismételten nyomon " "követett veremkiíratások feltöltésekor (ha a -g, -o és -s egyike sincs " "megadva)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Ismételten nyomon követett veremkiíratások megjelenítése, és megerősítés " "kérése a beküldés előtt az összeomlási adatbázisba." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Útvonal a kettőzött sqlite adatbázishoz (alapértelmezett: nincs ellenőrzés)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Nem használhatja a -C kapcsolót az -S kapcsoló nélkül. Leállítás." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Elküldhetők ezek mellékletként? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Úgy tűnik, ez a csomag nincs megfelelően telepítve" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ez nem egy hivatalos %s csomag. Távolítson el minden harmadik féltől " "származó csomagot és próbálja újra." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Néhány csomagból egy elavult verzió van telepítve. Frissítse az alábbi " "csomagokat és ellenőrizze, hogy a probléma ezután is fennáll-e: \n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "ismeretlen program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Elnézést, a(z) „%s” program váratlanul összeomlott." #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Probléma a következőben: %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "A számítógépe nem rendelkezik elegendő szabad memóriával a probléma " "automatikus elemzéséhez és a jelentés elküldéséhez a fejlesztőknek." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Érvénytelen hibajelentés" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "A hibajelentés elérése nem engedélyezett" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Hiba" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Nincs elegendő lemezterület a hiba feldolgozásához." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nincs megadva csomag" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Meg kell adnia egy csomagot vagy PID azonosítót. További információkért " "tekintse meg a --help kapcsoló kimenetét." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Hozzáférés megtagadva" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "A megadott folyamat nem Önhöz tartozik. Ezt a programot a folyamat " "tulajdonosaként vagy rendszergazdaként futtassa." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Érvénytelen PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "A megadott PID nem programhoz tartozik." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "A(z) %s tünetparancsfájl nem határozott meg érintett csomagot" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "A(z) %s csomag nem létezik" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Nem készíthető jelentés" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Hibajelentés frissítése" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Ön nem beküldője vagy feliratkozottja a hibajelentésnek, vagy a jelentés egy " "duplikátum, esetleg már lezárták.\n" "\n" "Készítsen új jelentést az „apport-bug” használatával." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Nem Ön küldte be a hibajelentést. Sokkal könnyebb megjelölni egy hibát egy " "másik duplikátumaként, mint átköltöztetni a hozzászólásait és mellékleteit " "egy új hibához.\n" "\n" "Emiatt azt ajánljuk, hogy nyisson egy új hibajelentést az „apport-bug” " "használatával, és küldjön egy hozzászólást ehhez a hibához az újonnan " "nyitottról.\n" "\n" "Biztosan folytatja?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Nem került gyűjtésre további információ." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Milyen problémát kíván jelenteni?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Ismeretlen tünet" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "A(z) „%s” tünet ismeretlen." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Ezen üzenet bezárása után kattintson egy alkalmazásablakra az azzal " "kapcsolatos hiba jelentéséhez." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "Az xprop nem tudta meghatározni az ablak folyamatazonosítóját" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <jelentésszám>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Adja meg a csomagnevet." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Extra címke hozzáadása a jelentéshez. Többször is megadható." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [kapcsolók] [tünet|pid|csomag|program elérési_út|.apport/.crash fájl]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Indítás hibabejelentő módban. A --package és egy elhagyható --pid, vagy csak " "egy --pid kapcsolót igényel. Ha egyik sincs megadva, az ismert tünetek " "listáját jeleníti meg. (Egy paraméter megadása is ezt jelenti.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Kattintson egy ablakra az azzal kapcsolatos hiba jelentéséhez." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Indítás hibafrissítés módban. Opcionálisan használható a --package kapcsoló." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Hiba bejelentése egy tünetről. (Ha az egyetlen paraméter tünetnév, az is ezt " "jelenti.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Csomagnév megadása --file-bug módban. Ez elhagyható, ha a --pid meg van " "adva. (Ha az egyetlen paraméter egy csomagnév, az is ezt jelenti.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Futó program megadása --file-bug módban. Ha ez meg van adva, a hibajelentés " "több információt fog tartalmazni." #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "A megadott PID egy nem válaszoló alkalmazásra mutat." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Az összeomlás bejelentése adott .apport vagy .crash fájlból, a(z) %s alatt " "függőben lévők helyet. (Ha az egyetlen paraméter egy fájl, az is ezt " "jelenti.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Hibajelentő módban az összegyűjtött információk mentése fájlba a bejelentés " "helyett. Ez a fájl később másik gépről beküldhető." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Az Apport verziószámának megjelenítése." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Ez meg fogja nyitni az apport-retrace-t egy terminálban, hogy az " "megvizsgálja az összeomlást." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "gdb folyamat futtatása" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "gdb folyamat futtatása a hibakeresési szimbólumok letöltése nélkül" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "%s frissítése teljes szimbolikus veremkiíratással" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Ez a problémajelentés egy olyan programra vonatkozik, amely már nincs " "telepítve." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "A hiba a(z) „%s” programmal lépett fel, amely megváltozott az összeomlás óta." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "A hibajelentés megsérült és nem dolgozható fel." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "A jelentés egy nem telepített csomaghoz tartozik." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Hiba történt a következő hibabejelentés feldolgozása közben:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "A csomag vagy forrás neve nem állapítható meg." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "A webböngésző nem indítható." #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "A(z) „%s” megnyitásához nem lehet elindítani a webböngészőt." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Adja meg fiókadatait a(z) %s hibakövető rendszerhez" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Hálózati probléma" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Nem lehet kapcsolódni az összeomlás-adatbázishoz, ellenőrizze az " "internetkapcsolatát." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Elfogyott a memória" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "A rendszere nem rendelkezik elegendő memóriával ezen összeomlásjelentés " "feldolgozásához." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "A hiba nem jelenthető:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "A probléma már ismert." #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ez a probléma már ismert, a webböngészőjében megjelent a hozzátartozó " "hibajelentés. Ellenőrizze, hogy tud-e további információkkal szolgálni, " "amelyek hasznosak lehetnek a fejlesztők számára." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ez a probléma már jelentve volt a fejlesztőknek. Köszönjük!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Ez egy korábbi felfüggesztés közben történt, és ezzel megakadályozta a " "rendszer megfelelő indulását." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Ez egy korábbi hibernálás közben történt, és ezzel megakadályozta a rendszer " "megfelelő indulását." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "A folytatás feldolgozása a vége felé megszakadt, és úgy fog tűnni, hogy " "normálisan befejeződött." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "A folytatáshoz nyomjon le egy billentyűt…" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Mit szeretne tenni? A lehetőségek:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Válasszon (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bájt)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "A hibajelentés elküldése után töltse ki a kérdőívet az\n" "automatikusan megnyíló webböngészőben." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Hibajelentés küldése (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Vizsgálat helyileg" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "Hi&bajelentés megtekintése" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "Hibajelentés megtartása &későbbi küldésre, vagy más helyre másolásra" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Mégse, és ezentúl a programverzió összeomlásainak figyelmen &kívül hagyása" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "Mé&gse" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Hibajelentésfájl:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "Meg&erősítés" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Hiba: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Az összegyűjtött információkat elküldheti a fejlesztőknek, hogy " "javíthassanak\n" "az alkalmazáson. A küldés eltarthat pár percig." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Az összegyűjtött információk elküldése a hibakövető rendszernek.\n" "Ez eltarthat pár percig." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Kész" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "nincs" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Kiválasztva: %s. További lehetőségek:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Lehetőségek:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Fájl helye (kilépés enterrel):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "A fájl nem létezik." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Ez egy könyvtár." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "A folytatáshoz meg kell nyitnia a következő URL-címet:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Elindíthatja most a böngészőt, vagy átmásolhatja ezt az URL-címet egy másik " "számítógépen lévő böngészőbe." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Böngésző indítása most" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nincs függőben lévő összeomlás-jelentés. \r\n" "További információkért tekintse meg a --help kapcsoló kimenetét." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Amennyiben hibajelentést küld, a hiba kijavításában segíti a fejlesztőket." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "A(z) „%s” csomagot nem sikerült telepíteni vagy frissíteni." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Teljes jelentés (ajánlott; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Elküldi a hibajelentést a fejlesztőknek?</b></big>\n" #~ "\n" #~ "A hibajelentés elküldése után töltse ki (angolul) a böngészőben " #~ "automatikusan megnyíló űrlapot." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Ha nem csinált semmi bizalmasat (jelszó vagy egyéb személyes információk " #~ "beírása), a hiba jelentésével segíthet az alkalmazás továbbfejlesztésében." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Elnézést, a következő váratlanul befejeződött: %s" #~ msgid "Application problem" #~ msgstr "Alkalmazásprobléma" #~ msgid "&Details..." #~ msgstr "&Részletek..." #~ msgid "_Send Report" #~ msgstr "_Jelentés küldése" #~ msgid "Generic error" #~ msgstr "Általános hiba" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "A hibajelentés elküldése után töltse ki a webböngészőben automatikusan " #~ "megnyíló űrlapot." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Ha éppen semmi bizalmasat sem végzett (jelszavak vagy egyéb \n" #~ "magánjellegű információk bevitele), a hiba bejelentésével segíthet \n" #~ "a fejlesztőknek annak javításában." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s váratlanul befejeződött (%s %s)." #~ msgid "Restart _Program" #~ msgstr "_Program újraindítása" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "" #~ "Elnézést, a(z) \"%s\" csomagot nem sikerült telepíteni vagy frissíteni." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "Teljes hibajelentés &küldése (ajánlott; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Egyszerűsített jelentés (lassú internetkapcsolat esetén; %s)" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Elnézést, a következő váratlanul befejeződött: %s." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "A program t_ovábbi összeomlásainak figyelmen kívül hagyása" #~ msgid "Restart &Program" #~ msgstr "&Program újraindítása" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "" #~ "&Csökkentett hibajelentés küldése (lassú internetkapcsolat esetén; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Ez eltávolítja a jelentés néhány nagy méretű elemét. Ezek nagyon hasznosak a " #~ "fejlesztők számára a hiba megkeresésében, de lassú internetkapcsolat esetén " #~ "túl nagyok lehetnek a feltöltéshez." #~ msgid "&Send" #~ msgstr "&Küldés" #~ msgid "Kernel problem" #~ msgstr "Kernelprobléma" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "A &programverzió jövőbeli összeomlásainak figyelmen kívül hagyása" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "A hiba jelentésével segítheti a fejlesztőket a csomag javításában." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Ez nem eredeti %s csomag" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Elnézést, a következő program váratlanul befejeződött: %s" #~ msgid "Package problem" #~ msgstr "Csomagprobléma" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "A rendszer súlyos rendszermag-problémát észlelt." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ez egy korábbi felfüggesztés során történt, és megakadályozta a szabályos " #~ "folytatást." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ez egy korábbi hibernáció során történt, és megakadályozta a szabályos " #~ "folytatást." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [kapcsolók] <apport hibajelentés | összeomlás-azonosító>" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Elnézést, a(z) „%s” csomag telepítése " #~ "vagy frissítése meghiúsult.</span>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "Helyi műveletet kell végeznie (-s, -g, -o), vagy meg kell adnia egy " #~ "hitelesítési fájlt (--auth); használja a --help kapcsolót a tömör súgóhoz" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "A paraméterszám nem megfelelő, használja a --help kapcsolót a tömör súgóhoz" #~ msgid "_Report Problem..." #~ msgstr "_Hiba jelentése…" #~ msgid "&Report Problem..." #~ msgstr "&Hiba jelentése…" #~ msgid "Send this data to the developers?" #~ msgstr "Elküldi az adatokat a fejlesztőknek?" #~ msgid "Content of the report" #~ msgstr "Jelentés tartalma" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Elnézést, a(z) %s alkalmazás váratlanul befejeződött." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "A rendszer instabillá válhat, szükség lehet az újraindítására." ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/hy.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077424�14416106601�011465� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Armenian translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Armenian <hy@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: hy\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ia.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077432�14416106601�011435� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Interlingua translation for apport # Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2015. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-28 12:42+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Interlingua <ia@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ia\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/id.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000136071�14416106601�011433� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Indonesian translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Cecep Mahbub <cecep.mahbub@gmail.com>\n" "Language-Team: Indonesian <id@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: id\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Batal" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Laporan crash" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Maaf, terjadi kesalahan internal.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Bila Anda menemui masalah lebih lanjut, cobalah memulai ulang komputer." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Mengirim laporan kesalahan dapat membantu memperbaiki masalah ini" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Abaikan masalah atas versi program ini di masa mendatang" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Tunjukkan Rincian" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "P_eriksa secara lokal" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Biarkan Tertutup" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Lanjutkan" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Mengumpulkan informasi permasalahan</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Informasi yang dikumpulkan akan dapat membantu para pengembang untuk " "memperbaiki masalah yang Anda laporkan." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Mengunggah informasi masalah" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Unggah informasi masalah</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Iniformasi yang dikumpulan telah dikirim ke sistem pelacak bug. Hal ini " "membutuhkan waktu beberapa menit." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Berkas crash Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(data biner)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Maaf, aplikasi %s telah berhenti secara tak terduga." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Maaf, %s telah tertutup secara tak terduga." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Maaf, %s telah mengalami galat internal." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Kirim laporan masalah ke para pengembang?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Kirim" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Paksakan Ditutup" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Luncurkan Ulang" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Aplikasi %s telah berhenti merespon." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Program \"%s\" telah berhenti merespon." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paket: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Maaf, terjadi masalah ketika memasang perangkat lunak." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Aplikasi %s telah mengalami galat internal." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Aplikasi %s telah tertutup tanpa diharapkan." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Abaikan masalah tipe ini di masa mendatang" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Sembunyikan Rincian" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Cara pakai: %s <laporan> <direktori target>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Direktori tujuan ada dan tak kosong." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nama pengguna:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Sandi:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Mengumpulkan Informasi Masalah" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Mengumpukan informasi masalah" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Informasi yang dikumpulkan dapat dikirim ke para pengembang untuk " "meningkatkan aplikasi. Ini mungkin perlu waktu beberapa menit." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Mengunggah Informasi Masalah" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Kumpulkan informasi sistem" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Perlu otentikasi untuk mengumpulkan informasi sistem bagi laporan masalah ini" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Laporan masalah sistem" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Harap masukkan sandi Anda untuk mengakses laporan masalah dari program sistem" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Laporkan masalah..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Lapor kegagalan kepada pengembang" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Lihat rincian di laman man" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "nyatakan nama berkas log yang dihasilkan oleh valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "pakai ulang dir kotak pasir yang sebelumnya dibuat (SDIR), atau bila belum " "ada, buatlah" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "jangan buat atau pakai ulang direktori kotak pasir untuk simbol awakutu " "tambahan tapi hanya bergantung kepada simbol awakutu yang telah dipasang" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "pakai ulang dir singgahan yang sebelumnya dibuat (CDIR), atau bila belum " "ada, buatlah" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "laporkan kemajuan unduh/pasang ketika memasang paket ke dalam kotak pasir" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "executable yang dijalankan di bawah perkakas memcheck valgrind untuk deteksi " "kebocoran memori" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Pasang suatu paket ekstra ke dalam kotak pasir (dapat dinyatakan berkali-" "kali)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Galat: %s bukan executable. Menghentikan." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Sistem Anda mungkin menjadi tak stabil sekarang dan mungkin perlu distart " "ulang." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Jangan letakkan pelacakan baru ke dalam laporan, tapi tulis mereka ke stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Mulai sesi gdb interaktif dengan core dump dari laporan (-o diabaikan; tidak " "menulis laporan)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Tulis laporan yang diubah ke berkas yang diberikan alih-alih mengubah " "laporan asli" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Buang core dump dari laporan setelah regenerasi stack trace" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Timpa CoreFile laporan" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Timpa ExecutablePath laporan" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Timpa ProcMaps laporan" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Bangun ulang informasi Package laporan" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Bangun suatu kotak pasir sementara dan unduh/pasang paket-paket yang " "diperlukan dan simbol awakutu di sana; tanpa opsi ini diasumsikan bahwa " "paket-paket dan simbol awakutu yang diperlukan telah terpasang dalam sistem. " "Argumen menunjuk ke direktori dasar konfigurasi sistem pemaketan; bila Anda " "menyatakan \"system\", itu akan memakai berkas konfigurasi sistem, tapi " "hanya akan dapat melacak ulang crash yang terjadi pada rilis yang kini " "sedang berjalan." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Laporkan kemajuan pengunduhan/pemasangan ketika memasang paket ke dalam " "kotak pasir" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Awali pesan log dengan penanda waktu, bagi operasi batch" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Buat dan pakai repositori pihak ketiga dari sumber yang dinyatakan dalam " "laporan" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Direktori singgahan bagi paket yang diunduh dalam kotak pasir" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Direktori untuk paket yang dibuka kemasannya. Eksekusi di masa mendatang " "akan menganggap bahwa paket yang telah diunduh juga diekstrak ke kotak pasir " "ini." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Path ke berkas dengan informasi otentikasi basis data crash. Ini dipakai " "ketika menyatakan ID crash untuk mengunggah jejak stack yang dilacak ulang " "(hanya bila -g, -o, maupun -s tak dinyatakan)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Tampilkan jejak stack yang dilacak ulang dan tanyakan persetujuan sebelum " "mengirim mereka ke basis data crash." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "Path ke basis data sqlite duplikat (baku: tak ada uji duplikasi)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Anda tidak bisa menggunakan -C tanpa -S. Sedang menghentikan." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Ok untuk mengirim lampiran-lampiran ini? [y/t]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Paket ini nampaknya tak terpasang secara benar" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ini bukan paket %s resmi. Harap hapus sebarang paket pihak ketiga dan coba " "lagi." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Paket yang Anda instal sudah obsolete. Silakan perbaharui paket berikut dan " "periksa apakah masih terjadi masalah:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "program tak dikenal" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Maaf, program \"%s\" ditutup tak disangka-sangka" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Masalah di %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Komputer anda sepertinya tidak memiliki cukup memori bebas untuk secara " "otomatis menganalisa masalah dan mengirimkan laporan pada pengembang." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Laporan masalah tidak valid" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Anda tak diijinkan untuk mengakses laporan masalah ini." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Galat" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Tak tersedia ruang cakram yang cukup untuk mengolah laporan ini." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Tak ada paket yang dinyatakan" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Anda perlu menyatakan suatu paket atau sebuah PID. Lihat --help untuk " "informasi lebih." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Tak diijinkan" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Proses berikut tidak dimiliki oleh Anda. Silakan jalankan program ini dengan " "mengunakan root atau pemilik proses." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID tak valid" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "ID proses yang dinyatakan bukan milik suatu program." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Skrip gejala %s tak menentukan paket yang terpengaruh" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Paket %s tidak ada" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Tidak dapat membuat laporan" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Sedang memperbarui laporan masalah" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Anda bukan pelapor atau pelanggan dari laporan masalah ini, atau laporan " "adalah duplikat atau sudah ditutup.\n" "\n" "Silakan membuat suatu laporan baru memakai \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Anda bukan pelapor dari laporan masalah ini. Lebih mudah untuk menandai " "suatu kutu sebagai duplikat dari lainnya daripada memindah komentar dan " "lampiran Anda ke suatu kutu baru.\n" "\n" "Akibatnya, kami menyarankan agar Anda mengirim suatu laporan kutu baru " "memakai \"apport-bug\" dan membuat komentar dalam kutu ini tentang yang Anda " "kirimkan.\n" "\n" "Apakah Anda yakin ingin meneruskan?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Tidak ada informasi tambahan yang dikumpulkan" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Masalah macam apa yang ingin Anda laporkan?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Gejala tak dikenal" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Gejala '%s' tak dikenal." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Setelah menutup pesan ini silakan klik pada jendela aplikasi untuk " "melaporkan masalah tentang hal ini." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop gagal untuk menentukan ID proses dari jendela" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Tentukan nama paket." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Tambahkan label tambahan untuk laporan. Dapat memasukkan beberapa label " "sekaligus." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "%prog [opsi] [gejala|pid|paket|path program|berkas .apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Mulai dalam moda pelaporan kutu. Memerlukan --package dan opsional --pid, " "atau hanya --pid. Bila keduanya tak diberikan, tampilkan daftar dari gejala " "yang telah diketahui. (Otomatis bila argumen tunggal diberikan.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Klik jendela sebagai target untuk mengajukan laporan masalah." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Memulai mode memperbarui bug. Dapat mengambil optional --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Laporkan kutu tentang suatu gejala. (Otomatis bila nama gejala diberikan " "sebagai argumen tunggal.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Nyatakan nama paket dalam moda --file-bug. Ini opsional bila suatu --pid " "dinyatakan. (Otomatis bila nama paket diberikan sebagai argumen tunggal.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Nyatakan suatu program yang sedang berjalan dalam mode --file-bug. Bila ini " "dinyatakan, laporan kutu akan memuat lebih banyak informasi. (diasumsikan " "bila pid diberikan sebagai satu-satunya argumen.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Pid yang diberikan adalah aplikasi yang hang." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Laporkan crash dari berkas .apport atau .crash alih-alih dari yang tertunda " "di %s. (Otomatis bila berkas diberikan sebagai argumen tunggal.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Dalam mode pelaporan kutu, simpan informasi yang terkumpul ke dalam suatu " "berkas alih-alih melaporkannya. Berkas ini kemudian dapat dilaporkan nanti " "atau dari mesin lain." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Cetak nomor versi Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Ini akan meluncurkan apport-retrace dalam suatu jendela terminal untuk " "memeriksa crash." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Memulai sesi gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Memulai sesi gdb tanpa mengunduh simbol debug" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Mutakhirkan %s dengan pelacakan stack simbol lengkap" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Laporan masalah berlaku bagi suatu program yang telah tak terpasang lagi." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Terjadi masalah dengan program %s yang berubah semenjak terjadinya crash." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Laporan permasalah gagal dan tidak dapat diproses." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Laporan ini milik paket yang tidak dipasang." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Terjadi kesalahan ketika mencoba untuk memproses laporan masalah:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "TIdak dapat menentukan nama paket atau nama paket sumber." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "TIdak dapat menjalankan perambah web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "TIdak dapat menjalankan perambah web untuk membuka %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Silakan masukkan informasi akun Anda bagi sistem pelacakan kutu %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Masalah di jaringan" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Tak bisa menyambung ke basis data crash, silakan periksa sambungan Internet " "Anda." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Kehabisan memori" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Sistem Anda tidak memiliki memori yang cukup untuk memproses laporan crash " "ini." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Permasalahan yang tidak dapat dilaporkan:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Masalah sudah diketahui" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Masalah ini telah dilaporkan dalam laporan kutu yang ditampilkan di peramban " "web. Silakan periksa apakah Anda dapat menambah informasi lebih lanjut yang " "mungkin berguna bagi para pengembang." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Masalah ini sudah dilaporkan ke pengembang. Terima kasih!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Ini terjadi saat suspensi sebelumnya, dan mencegah sistem melanjutkan secara " "benar." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Ini terjadi saat hebernasi sebelumnya, dan mencegah sistem melanjutkan " "secara benar." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Pemrosesan pelanjutan menggantung sangat dekat dengan ujung dan akan nampak " "seperti komplit secara normal." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Tekan sembarang tombol untuk lanjut..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Apa yang ingin Anda lakukan? Pilihan Anda adalah:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Silakan pilih (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Setelah laporan masalah dikirim, silakan mengisi formulir di peramban\n" "web yang otomatis dibuka." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Kirim laporan (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "P&eriksa secara lokal" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Tilik laporan" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "Simpan ber&kas laporan untuk pengiriman nanti atau penyalinan ke tempat lain" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Batalkan dan aba&ikan crash di masa mendatang dari versi program ini" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Batal" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Berkas laporan masalah:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Konfirmasi" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Galat: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Informasi yang dikumpulkan dapat dikirim ke para pengembang untuk\n" "memperbaiki aplikasi. Ini mungkin makan waktu beberapa menit." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Informasi yang dikumpulan sedang dikirim ke sistem pelacak kutu.\n" "Ini mungkin makan waktu beberapa menit." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Selesai" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "tak ada" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Terpilih: %s. Pilihan berganda:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Pilihan:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Path ke berkas (Enter untuk membatalkan):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Berkas tidak ada." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Ini bukan direktori." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Untuk melanjutkan, Anda mesti mengunjungi URL berikut:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Anda dapat meluncurkan sebuah peramban sekarang, atau menyalin URL ini ke " "dalam peramban pada komputer lain." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Luncurkan sebuah peramban sekarang" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "Tak ada laporan crash tertunda. Coba --help untuk informasi lebih." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Laporan penuh (disarankan; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Kirim laporan masalah ke pengembang?</b></big>\n" #~ "\n" #~ "Setelah laporan masalah telah dikirim, harap isi formulir pada jendela " #~ "browser yang otomatis terbuka." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Jika Anda tidak melakukan hal-hal yang bersifat rahasia (memasukkan kata " #~ "sandi atau informasi pribadi lainnya), Anda dapat membantu untuk memperbaiki " #~ "kinerja aplikasi ini dengan cara melaporkan masalah." #~ msgid "Application problem" #~ msgstr "Masalah pada aplikasi" #~ msgid "_Send Report" #~ msgstr "_Kirim Laporan" #~ msgid "Restart _Program" #~ msgstr "Restart _Program" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Maaf, paket \"%s\" gagal diinstal atau " #~ "diperbaharui.</span>" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Laporan singkat (koneksi internet lambat; %s)" #~ msgid "_Report Problem..." #~ msgstr "_Laporkan masalah..." #~ msgid "Kernel problem" #~ msgstr "Masalah di kernel" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Anda dapat membantu pengembang untuk memperbaiki paketnya dengan melaporkan " #~ "masalahnya." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Ini bukan paket %s yang asli" #~ msgid "Content of the report" #~ msgstr "Isi dari laporan" #~ msgid "Package problem" #~ msgstr "Masalah pada paket" #~ msgid "&Report Problem..." #~ msgstr "Lapo&rkan Masalah..." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Paket \"%s\" gagal dipasang atau ditingkatkan." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Sistem Anda mengalami masalah kernel serius." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Anda dapat membantu para pengembang untuk memperbaiki masalah dengan " #~ "melaporkannya." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "Kirim laporan lengkap (di&sarankan; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Ki&rim laporan singkat (sambungan Internet lambat; %s)" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ini terjadi selama suspensi sebelumnya dan mencegahnya melanjutkan dengan " #~ "benar." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ini terjadi selama hibernasi sebelumnya dan mencegahnya melanjutkan dengan " #~ "benar." #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Ini akan menghapus beberapa item besar dari laporan. Mereka sangat berguna " #~ "bagi para pengembang untuk mengawakutu masalah, tapi mungkin terlalu besar " #~ "bagi Anda untuk mengunggah bila Anda memiliki sambungan Internet yang lambat." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "Aba_ikan crash di masa mendatang dari versi program ini" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [opsi] <laporan masalah apport | ID crash>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "cacah argumen salah; gunakan --help untuk bantuan singkat" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "Anda perlu melakukan operasi lokal (-s, -g, -o) atau memberikan berkas " #~ "otentikasi (--auth); lihat --help untuk bantuan singkat" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Bila Anda tak lakukan apapun yang rahasia (memasukkan kata sandi atau " #~ "informasi\n" #~ "pribadi lainnya), Anda dapat membantu memperbaiki aplikasi dengan " #~ "melaporkan\n" #~ "masalah ini." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s tertutup tak terduga di %s pada %s." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Sistem Anda mungkin menjadi tak stabil saat ini dan mungkin perlu dimulai " #~ "ulang." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/is.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000124507�14416106601�011453� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Icelandic translation for apport # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2008. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Páll Haraldsson <Pall.Haraldsson@gmail.com>\n" "Language-Team: Icelandic <is@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: is\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Hrunskýrsla" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Því miður, upp kom innri villa.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Ef þú verður var við fleiri vandamál, reyndu þá að endurræsa tölvuna." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Senda villuskýrslu til að hjálpa til við lausn þessa vandamáls" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Hunsa frekari vandamál í þessarri útgáfu forrits" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Sýna ítarlegri upplýsingar" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "Skoða _hér" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Skilja eftir lokað" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Halda áfram" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Safna upplýsingum um vandamál</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Er að safna upplýsingum sem gætu hjálpað forriturum að laga vandann sem þú " "tilkynnir" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Sendi vandamálsskýrslu" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Sendi vandamálsskýrslu</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Er að senda upplýsingarnar á villukerfið. Þetta gæti tekið nokkrar mínútur." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport villuskrá" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(gögn í tvíundakerfi)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Því miður, forritið %s hætti óvænt." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Því miður, forritið %s lokaði óvænt." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Því miður, %s hefur lent í innri villu." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Senda vandamálsskýrslu til forritara?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Senda" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Þvinga til að loka" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Keyra aftur upp" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Forritið %s hætti að svara." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Forritið %s hætti að svara." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakki: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Því miður, vandamál kom upp við upppsetningu hugbúnaðar." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Forritið %s lenti í innri villu." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Forritið %s lokaði óvænt." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Hunsa svona vandamál héðan í frá" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Fela nánari upplýsingar" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Notkun: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Notandanafn:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Lykilorð:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Safna saman upplýsingum um vandamál" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Safna saman upplýsingum um vandamál" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Söfnuðum upplýsingum er hægt að koma til forritaranna til að bæta forritið. " "Þetta gæti tekið nokkrar mínútur." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Sendi upplýsingar um vandamálið" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Safna kerfisupplýsingum" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Auðkenningar er krafist fyrir söfnun á kerfisupplýsingum fyrir þessa " "villuskýrslu" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Vandamálaskýrslur kerfis" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "Sláðu inn lykilorð til að fá aðgang að villuskýrslum kerfisforrita" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Tilkynna vandamál..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Tilkynna bilun til forritara" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Sjá nánar á man-síðu." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "endurnýta sandkassamöppu (SDIR) sem þegar hefur verið búin til eða, ef hún " "er ekki til, búa hana til" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "ekki búa til né endurnýta sandkassamöppu fyrir auka aflúsunarmerki heldur " "aðeins treysta á uppsett aflúsunarmerki." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "endurnýta skyndiminnismöppu (CDIR) sem þegar hefur verið búin til eða, ef " "hún er ekki til, búa hana til" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Villa: %s er ekki keyranlegt forrit. Hætti." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Kerfið þitt verður kannski óstöðugt núna og þarf hugsanlega að endurræsa það." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Þú getur ekki notað -C án -S. Hætti." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Er allt í lagi að senda þetta sem sem viðhengi? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Þessi pakki virðist ekki rétt upp settur" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Þú er með uppsettar einhverjar úreltar útgáfur af pökkum. Endilega uppfærðu " "eftirfarandi pakka og athugaðu hvort vandamálið endurtekur sig:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "óþekkt forrit" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Fyrirgefðu, forritið \"%s\" hætti óvænt" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Vandamál í %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Tölvan þín hefur ekki nóg laust innra minni til að greina sjálfkrafa " "vandamálið og senda til forritaranna." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Ógild vandamálsskýrsla" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Þú hefur ekki leyfi til að skoða þessa skýrslu." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Villa" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Það er ekki nóg diskpláss til að vinna úr skýrslunni." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Enginn pakki valinn" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Þú þarft að tilgreina pakka eða PID. Sjá --help fyrir meiri upplýsingar." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Aðgangur bannaður" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Tiltekið ferli tilheyrir þér ekki. Keyrðu þetta forrit sem eigandi ferlisins " "eða sem kerfisstjórnandi" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Ógilt PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Þetta ID tilheyrir ekki neinu forriti." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Pakki %s er ekki til" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Uppfæri villuskýrslu" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Þú ert ekki tilkynnandi eða áskrifandi að þessarri villuskýrslu, eða " "skýrslan er tvítekin eða nú þegar lokuð.\n" "\n" "Búðu til nýja skýrslu með ‚apport-bug‘." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Þú ert ekki tilkynnandi þessarar villuskýrslu. Mun auðveldara er að merkja " "villu sem tvítekningu annarrar heldur en að færa athugasemdir og viðhengin " "þín í nýja villu.\n" "\n" "Þar af leiðir ráðleggjum við að þú sendir inn nýja villuskýrslu með ‚apport-" "bug‘ og búir til athugasemd í þessarri villu um þá skýrslu.\n" "\n" "Ertu alveg viss þú viljir halda áfram?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Hvers konar forrit viltu senda skýrslu um?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Óþekkt einkenni" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Einkennið „%s“ er ekki þekkt." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Eftir lokun þessa skilaboða, smelltu á forritsglugga til að skrá villu um " "hann." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Tilgreindu pakkaheiti." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Gefna PID-ið er forrit sem hangir." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Gefa Apport útgáfunúmerið." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Þessi vandamálaskýrsla á við forrit sem er ekki uppsett lengur." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Vandamálið kom fyrir í forritunu %s sem er breytt síðan síðasta hrun varð." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Skýrslan er löskuð og ég get ekki unnið úr henni" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Þessi skýrsla tilheyrir pakka sem ekki er uppsettur" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Villa kom upp þegar reynt var að vinna þessa villuskýrslu:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Gat ekki ákveðið nafn pakka eða grunnpakka" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Gat ekki ræst vefvafra" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Gat ekki ræst vefvafra til að opna %s" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Sláðu inn aðgangsupplýsingar þínar fyrir %s villukerfið." #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Vandamál með nettengingu" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "Get ekki tengst við gagnagrunn, athugaðu nettenginguna." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Minnisvandamál" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Kerfið þitt hefur ekki nóg vinnsluminni til að vinna úr þessari skýrslu." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Ekki hægt að tilkynna vandamálið:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Vandamál þegar þekkt" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Þetta vandamál var þegar tilkynnt í villuskýrslunni sem birtist í " "vefvafranum. Athugaðu hvort þú getur bætt við einhverjum gagnlegum " "upplýsingum." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" "Þetta vandamál hefur nú þegar verið tilkynnt til þróunarteymis. Takk fyrir!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Endurvakningin hékk í blá endann en lítur út fyrir að hafa klárast eðlilega." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Ýttu á einhvern lykil til að halda áfram..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Hvað viltu gera? Þú getur:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Veldu (%s);" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bæti)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Eftir að vandamálaskýrslan hefur verið send opnast sjálfkrafa netvafri með " "formi.\n" "Vinsamlegast fylltu það út." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Senda skýrslu (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "Skoða &hér" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Lesa skýrslu" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "&Geyma skýrslu til að senda inn seinna eða til að færa á annan stað" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Hætta við og h&unsa frekari hrun í þessari útgáfu forritsins" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Hætta við" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Skrá með upplýsingar um vandamál:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Staðfesta" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Villa: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Þú getur sent inn skýrslu með þessum upplýsingum til að bæta forritið.\n" "Þetta getur tekið nokkra stund." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Verið er að senda upplýsingar sem safnað hefur verið í villukerfi.\n" "Það getur tekið nokkrar mínútur." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Lokið" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ekkert" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Valið: %s. Margir valkostir:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Valkostir:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Slóð skráar (Enter til að hætta við):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Skrá er ekki til." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Þetta er mappa." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Þú verður að heimsækja eftirfarandi slóð til að halda áfram:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Þú getur ræst vafra núna eða afritað þessa slóð í vafra á annari tölvu." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Ræsa netvafra" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Full skýrsla (mælt með; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Senda vandamálsskýrslu til forritaranna?</b></big>\n" #~ "\n" #~ "Eftir að skýrslan hefur verið send, vinsamlegast fylltu út formið í vafranum " #~ "sem opnast sjálfkrafa." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Ef þú varst ekki að gera eitthvað leynilegt (slá inn lykilorð eða aðrar " #~ "persónulegar upplýsingar) geturðu hjálpað við að bæta forritið með því að " #~ "tilkynna vandamálið." #~ msgid "Application problem" #~ msgstr "Forritsvandamál" #~ msgid "_Send Report" #~ msgstr "_Senda skýrslu" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Ef þú varst ekki að gera eitthvað persónugreinanlegt (slá inn lykilorð eða \n" #~ "aðrar persónulegar upplýsingar) getur þú hjálpað við að laga forritið með\n" #~ "því að tilkynna vandamálið." #~ msgid "Restart _Program" #~ msgstr "_Endurræsa Forrit" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Því miður tókst ekki að setja upp eða " #~ "uppfæra pakkann \"%s\"</span>" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Minnkuð skýrsla (hæg nettenging; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Hunsa frekari hrun þessarar forritsútgáfu" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Þetta tekur nokkra stóra hluta úr skýrslunni. Þeir eru gagnlegir forriturum " #~ "til að greina vandamálkið, en gætu verið of stórir til að að senda yfir hæga " #~ "nettengingu." #~ msgid "&Report Problem..." #~ msgstr "&Tilkynna vandamál" #~ msgid "_Report Problem..." #~ msgstr "_Tilkynna vandamál..." #~ msgid "Kernel problem" #~ msgstr "Kjarnavandi" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Þú getur hjálpað forriturunum að laga pakkann með því að senda inn " #~ "tilkynningu." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Þetta er ekki alvöru %s pakki" #~ msgid "Content of the report" #~ msgstr "Innihald skýrslunnar" #~ msgid "Package problem" #~ msgstr "Pakkavandamál" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Það tókst hvorki að setja upp “%s“ eða uppfæra." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s lokaði óviðbúið þann %s klukkan %s." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Kerfið þitt lenti í alvarlegum vanda með stýrikerfiskjarnann" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Þú getur hjálpað til með því að tilkynna vandann." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Senda alla skýrsluna (mælt með þessu; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Senda &stytta skýrslu (hæg nettenging; %s)" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Þetta gerðist áður meðan verið var í svæfingu og kom í veg fyrir " #~ "endurvakningu úr því ástandi." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Þetta gerðist áður meðan verið var í dvala og kom í veg fyrir endurvakningu " #~ "úr því ástandi." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/it.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000141062�14416106601�011447� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Italian translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Gianfranco Frisani <gfrisani@libero.it>\n" "Language-Team: Italian <it@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: it\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Annulla" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Segnalazione crash" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Si è verificato un errore interno.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Se vengono riscontrati ulteriori problemi, riavviare il computer." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Inviare una segnalazione per aiutare a risolvere il problema" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorare futuri problemi di questa versione del programma" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Mostra dettagli" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Esamina localmente" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Lascia chiuso" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continua" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Raccolta delle informazioni sul problema in corso</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "È in corso la raccolta di informazioni che potrebbero aiutare gli " "sviluppatori a correggere il problema segnalato." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Invio informazioni sul problema" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Invio informazioni sul problema</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Le informazioni raccolte stanno per essere inviate al sistema di " "tracciamento bug. Potrebbe richiedere alcuni minuti." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "File crash di Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(dati binari)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "L'applicazione %s si è chiusa inaspettatamente." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "«%s» si è chiuso inaspettatamente." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "«%s» ha riscontrato un errore interno." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Inviare la segnalazione del problema agli sviluppatori?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Invia" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Forza chiusura" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Rilancia" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "L'applicazione %s non risponde più." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "L'applicazione «%s» non risponde più." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pacchetto: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Si è verificato un problema durante l'installazione del software." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "L'applicazione %s ha riportato un errore interno." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "L'applicazione «%s» si è chiusa inaspettatamente." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorare futuri problemi di questo tipo" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Nascondi dettagli" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Uso: %s <segnalazione> <directory di destinazione>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "La directory di destinazione esiste e non è vuota." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nome utente:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Password:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Raccolta informazioni sul problema" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Raccolta informazioni sul problema" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Le informazioni raccolte possono essere inviate agli sviluppatori per " "migliorare l'applicazione. Potrebbe richiedere alcuni minuti." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Invio informazioni sul problema" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Raccolta informazioni di sistema" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "È richiesto autenticarsi per raccogliere le informazioni di sistema riguardo " "alla segnalazione di errore" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Segnalazioni errori di sistema" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Inserire la propria password per accedere alle segnalazioni d'errore di " "programmi di sistema" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Segnala un problema..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Segnala un malfunzionamento agli sviluppatori" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Consultare la pagina man per maggiori dettagli." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "Specifica il nome del file di registro creato da valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "Riutilizza una directory di sandbox (SDIR) creata precedentemente o, se non " "esiste, la crea" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "Non crea o riutilizzare la directory di sandbox per i simboli di debug " "aggiuntivi , ma utilizza solo quelli installati nel sistema" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "Riutilizza una directory di cache (CDIR) creata precedentemente o, se non " "esiste, la crea" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "Indica l'avanzamento di scaricamento/installazione quando installa pacchetti " "nella sandbox" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "L'eseguibile lanciato in valgring per determinare perdite di memoria" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Installa un pacchetto extra nella sandbox (può essere specificato molteplici " "volte)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Errore: %s non è eseguibile. Arresto." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Il sistema potrebbe diventare instabile e potrebbe essere necessario " "riavviarlo." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Non inserisce i nuovi trace nella segnalazione, ma li scrive sullo stdout" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Avvia un sessione interattiva di gdb con il core dump della segnalazione (-o " "è ignorato; non scrive la segnalazione)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Scrive la segnalazione modificata nel file indicato, invece di modificare la " "segnalazione originale" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Elimina il core dump dalla segnalazione dopo la generazione dello stack trace" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Sovrascrive il CoreFile della segnalazione" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Sovrascrive l'ExecutablePath della segnalazione" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Sovrascrive la ProcMap della segnalazione" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Rigenera le informazioni sul Package della segnalazione" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Crea una sandbox temporanea e vi scarica/installa i pacchetti necessari e i " "simboli di debug. Senza questa opzione si presume che i pacchetti necessari " "e i simboli di debug siano già installati nel sistema. L'argomento punta " "alla directory base del sistema di pacchetti: se viene specificato " "\"system\", vengono usati i file di configurazione di sistema, ma sarà " "possibile eseguire il retrace dei crash avvenuti all'interno della release " "attualmente in esecuzione." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Segnala avanzamento di scaricamento/installazione durante l'installazione di " "pacchetti nella sandbox" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Anteporre gli orari ai messaggi di log nelle operazioni batch" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Crea e usa repository di terze parti dalle sorgenti specificate nei rapporti" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Directory cache per i pacchetti scaricati nella sandbox" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Directory per i pacchetti estratti; una successiva esecuzione assumerà che i " "pacchetti già scaricati siano stati estratti in questa sandbox." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Percorso di un file con informazioni di autenticazione del database dei " "crash. È usato quando si specifica l'ID di un crash per caricare gli stack " "trace a cui è stato eseguito un retrace (solo se non è specificato alcuno di " "-g, -o e -s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Visualizza gli stack trace a cui è stato eseguito un retrace e chiede " "conferma prima di inviarli al database dei crash." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Percorso al duplicato del database sqlite (predefinito: nessun controllo sul " "duplicato)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Impossibile usare -C senza -S. Arresto." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "OK per inviare questi come allegati? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Questo pacchetto non sembra installato correttamente" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Questo non è un pacchetto ufficiale di %s. Rimuovere tutti i pacchetti di " "terze parti, quindi riprovare." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Sono presenti delle versioni di pacchetti obsolete. Eseguire l'avanzamento " "di versione dei seguenti pacchetti e verificare se il problema è ancora " "presente:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programma sconosciuto" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Chiusura inattesa del programma «%s»" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problema in %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Nel computer non è presente abbastanza memoria libera per analizzare " "automaticamente il problema e inviare una segnalazione agli sviluppatori." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Segnalazione di problema non valida" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Accesso non consentito alla segnalazione riguardo questo problema." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Errore" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Non c'è spazio sufficiente sul disco per elaborare questa segnalazione." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nessun pacchetto specificato" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "È necessario specificare un pacchetto o un PID. Per maggiori informazioni " "consultare --help." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permesso negato" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Il processo specificato non appartiene all'utente corrente. Eseguire questo " "programma come il proprietario del processo o come root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID non valido" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "L'identificatore di processo specificato non appartiene al programma" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" "Lo script per l'analisi delle anomalie %s non ha rilevato alcun pacchetto " "alterato" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Il pacchetto %s non esiste" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Impossibile creare la segnalazione" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Aggiornamento segnalazione del problema" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "L'utente non è il creatore o non è associato a questa segnalazione, oppure " "la segnalazione è un duplicato o è già stata chiusa.\n" "\n" "Creare una nuova segnalazione utilizzando «apport-bug»." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "L'utente non è il creatore di questa segnalazione . È più semplice marcare " "un bug come duplicato di un altro che spostare i commenti e gli allegati di " "questa segnalazione in un nuovo bug.\n" "\n" "Successivamente, è consigliato segnalare un nuovo bug utilizzando «apport-" "bug» aggiungendovi un commento.\n" "\n" "Procedere?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Non è stata raccolta alcuna informazione aggiuntiva." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Che tipo di problema segnalare?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Anomalia sconosciuta" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "L'anomalia «%s» è sconosciuta." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Dopo aver chiuso questo messaggio, fare clic sulla finestra di " "un'applicazione per segnalarne un problema." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" "Recupero dell'identificativo del processo della finestra da parte di xprop " "non riuscito" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <numero segnalazione>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Specificare il nome del pacchetto." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Aggiunge un'etichetta alla segnalazione, può essere specificata più volte" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opzioni] [anomalia|pid|pacchetto|percorso programma|file " ".apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Avvia in modalità segnalazione bug. Richiede --package e opzionalmente --pid " " oppure solo --pid: se non è indicato alcuno dei due, sarà visualizzato un " "elenco di anomalie (implicito se è indicato un singolo argomento)." #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Fare clic su una finestra per completare i campi della segnalazione." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Avvia in modalità aggiornamento bug: è possibile usare l'opzione --package" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Invia una segnalazione di bug riguardo un'anomalia (implicito se è indicato " "il nome di un'anomalia come unico argomento)." #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Specifica il nome del pacchetto in modalità --file-bug: opzionale se --pid è " "stato specificato (implicito se il nome del pacchetto è indicato come unico " "argomento)." #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Specifica un programma in esecuzione nella modalità --file-bug; se viene " "specificato, la segnalazione conterrà maggiori informazioni (implicito se il " "PID è passato come argomento)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Il PID fornito è un'applicazione in attesa." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Segnala il crash da un file .apport o .crash fornito, piuttosto che da " "quelli in attesa in %s (implicito se file è indicato come unico argomento)." #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "In modalità segnalazione bug, salva le informazioni raccolte in un file " "invece di inviare la segnalazione; il file può poi essere inviato " "successivamente da un computer differente" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Mostra il numero di versione del programma." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Questo eseguirà apport-retrace in una finestra di terminale per esaminare il " "crash." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Esegui una sessione gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Esegui una sessione gdb senza scaricare i simboli di debug" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Aggiornare %s con uno stack trace completamente simbolico" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "La segnalazione del problema riguarda un programma che non è più installato." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Il problema si è verificato con il programma «%s», che risulta essere stato " "modificato rispetto al momento in cui si è verificato il crash." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" "Questa segnalazione di problema è danneggiata e non può essere elaborata." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "La segnalazione fa riferimento a un pacchetto che non è installato." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "Si è verificato un errore nel tentativo di elaborare questa segnalazione:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" "Impossibile determinare il nome del pacchetto o del pacchetto sorgente." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Impossibile avviare il browser web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Impossibile avviare il browser web per aprire %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Inserire i dati del proprio account per il sistema di tracciamento dei bug %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problema di rete" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Impossibile connettersi al database dei crash, controllare la connessione " "Internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memoria esaurita" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Il sistema non ha abbastanza memoria per elaborare questa segnalazione di " "crash." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Non è possibile segnalare il problema:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problema già noto" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Questo problema è già presente nell'elenco delle segnalazioni di bug " "mostrato nel browser web. Verificare se è possibile aggiungere ulteriori " "informazioni che potrebbero essere utili agli sviluppatori." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Il problema è già stato segnalato agli sviluppatori. Grazie." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Ciò si è verificato durante una precedente sospensione che non ha consentito " "il corretto ripristino del sistema." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Ciò si è verificato durante una precedente ibernazione che non ha consentito " "il corretto ripristino del sistema." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Il processo di ripristino si è bloccato verso il termine e sarebbe apparso " "come completato normalmente." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Premere un tasto per continuare..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Cosa fare? Le opzioni sono:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Scegliere (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i byte)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Una volta inviata la segnalazione del problema, riempire il modulo nella " "finestra\n" "del browser web che si aprirà automaticamente." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Invia segnalazione (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Esamina localmente" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Visualizza segnalazione" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Tenere il file di segnalazione per un successivo invio o per copiarlo in " "un'altra posizione" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "&Annulla e ignora i futuri crash di questa versione del programma" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "A&nnulla" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "File segnalazione problema:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Conferma" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Errore: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Le informazioni raccolte possono essere inviate agli sviluppatori per " "migliorare\n" "l'applicazione. Potrebbe impiegare alcuni minuti." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Le informazioni raccolte stanno per essere inviate al sistema di " "tracciamento dei bug.\n" "Potrebbe impiegare alcuni minuti." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Fatto" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "nessuno" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Selezionato: %s. Scelte multiple:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Scelte:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Percorso del file (Invio per annullare):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Il file non esiste." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Questa è una directory." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Per continuare, è necessario visitare il seguente URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "È possibile avviare il browser ora o copiare questo URL in un browser su un " "altro computer." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Lanciare un browser ora" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nessuna segnalazione di crash pendente. Provare --help per maggiori " "informazioni." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "È possibile aiutare gli sviluppatori a correggere il problema segnalando " #~ "quanto è accaduto." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Installazione o aggiornamento del pacchetto \"%s\" non riuscita." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Segnalazione completa (raccomandato, %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Inviare la segnalazione di problema agli sviluppatori?</b></big>\n" #~ "\n" #~ "Una volta inviata la segnalazione di problema, riempire il modulo nella " #~ "finestra del browser web che si aprirà automaticamente." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Se non era in corso alcuna operazione confidenziale (inserimento di password " #~ "o altre informazioni private), è possibile aiutare a migliorare " #~ "l'applicazione segnalando il problema." #~ msgid "Application problem" #~ msgstr "Problema nell'applicazione" #~ msgid "_Send Report" #~ msgstr "Invia _segnalazione" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Se non era in corso alcuna operazione confidenziale (inserimento di password " #~ "o\n" #~ "altre informazioni private), è possibile aiutare a migliorare l'applicazione " #~ "segnalando\n" #~ "il problema." #~ msgid "Restart _Program" #~ msgstr "Riavvia _programma" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "Invia &segnalazione completa (raccomandato; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Segnalazione ridotta (per connessioni a Internet lente; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignora i futuri crash di questa versione del programma" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Invia segnalazione &ridotta (per connessioni a Internet lente; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Questa operazione rimuoverà alcuni elementi di grandi dimensioni dalla " #~ "segnalazione. Tali elementi sono di grande aiuto agli sviluppatori per " #~ "analizzare il problema, ma la loro trasmissione potrebbe essere troppo " #~ "onerosa nel caso in cui si disponga di una connessione ad internet lenta." #~ msgid "&Report Problem..." #~ msgstr "&Segnala problema..." #~ msgid "_Report Problem..." #~ msgstr "_Segnala problema..." #~ msgid "Kernel problem" #~ msgstr "Problema nel kernel" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Segnalando questo problema, è possibile aiutare gli sviluppatori a " #~ "correggere il pacchetto." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Questo non è un pacchetto %s genuino" #~ msgid "Content of the report" #~ msgstr "Contenuto della segnalazione" #~ msgid "Package problem" #~ msgstr "Problema nel pacchetto" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Il sistema ha riscontrato un grave problema al kernel." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s si è chiuso inaspettatamente il giorno %s alle %s." #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "numero di argomenti non corretto; usare --help per un breve aiuto" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">L'installazione o l'avanzamento di " #~ "versione del pacchetto «%s» non è riuscito.</span>" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Questo si è verificato durante una precedente sospensione e ne ha impedito " #~ "un corretto ripristino." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Questo si è verificato durante una precedente ibernazione e ne ha impedito " #~ "un corretto ripristino." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [opzioni] <segnalazione problema apport | ID crash>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "È necessario eseguire un'operazione locale (-s, -g, -o) o fornire un file di " #~ "autenticazione (--auth); usare --help per un breve aiuto" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "L'applicazione «%s» si è chiusa inaspettatamente." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Il sistema potrebbe ora diventare instabile e potrebbe essere necessario un " #~ "riavvio." ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ja.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000143076�14416106601�011434� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Japanese translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2013-02-04 13:53+0000\n" "Last-Translator: OKANO Takayoshi <Unknown>\n" "Language-Team: Japanese <ja@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ja\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "キャンセル" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "クラッシュレポート" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>残念ながら、内部エラーが発生しました。</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "さらに問題が発生する場合は、コンピューターを再起動してみてください。" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "エラーレポートを送信してこの問題の修正に協力する" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "今後このバージョンのプログラムの問題を無視する" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "詳細を表示" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "ローカルで解析する(_E)" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "閉じて終了する" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "続行" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>問題の情報を集めています</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "あなたの報告する不具合を、開発者が修正するのに役立つように情報を収集します。" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "問題の情報をアップロードしています" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>問題の情報をアップロードしています</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "収集された情報はバグトラッキングシステムに送信されます。しばらくお待ちください。" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(バイナリデータ)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "残念ながら、アプリケーション%sが予期せず停止しました。" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "残念ながら、%s は予期せず終了しました。" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "残念ながら、%s で内部エラーが発生しました。" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "問題のレポートを開発者に送信しますか?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "送信" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "強制終了" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "再起動する" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "アプリケーション %s は応答していません。" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "プログラム \"%s\" は応答していません。" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "パッケージ: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "残念ながら、ソフトウェアのインストール中に問題が発生しました。" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "アプリケーション %s は内部エラーに遭遇しました。" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "アプリケーション %s が突然終了しました。" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "今後、この種類の問題は無視する" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "詳細を隠す" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "問題の情報を集めています" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "問題の情報を集めています" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "問題の情報をアップロードしています" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "システム情報を収集" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "この問題を報告するには、システム情報を収集するための認証が必要です" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "システムの問題の報告" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "システムプログラムの問題レポートにアクセスするにはパスワードを入力してください" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "問題を報告する..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "開発者に異常動作を報告してください" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "詳細はmanページをご覧ください。" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "valgrind によって生成されたログファイルの名前を指定" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "以前作成されたサンドボックスディレクトリ (SDIR) を再利用するか、もし存在しない場合には作成する" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "追加のデバッグシンボル用にサンドボックスディレクトリを作成または再利用せず、インストールされたデバッグシンボルのみを利用する。" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "以前作成されたキャッシュディレクトリ (CDIR) を再利用するか、もし存在しない場合には作成する" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "サンドボックス内にパッケージをインストールする際、ダウンロードおよびインストールの進捗状況を報告する" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "メモリリーク検出のためvalgrindのメモリチェックツールにより実行されているプログラム" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "サンドボックスに追加のパッケージをインストールします (複数回指定可)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "エラー: %s は実行ファイルではありません。中止します。" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "システムが不安定になる可能性があるので、再起動する必要があるかもしれません。" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "これ以上レポートに新しいトレースを書き込みませんが、標準出力には表示します。" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "レポートのコアダンプに対してインタラクティブなgdbセッションを開始します(-o 無視;レポートを上書きしません)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "オリジナルのレポートを変更せずに、指定されたファイルに変更後のレポートを書き込みます" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "スタックトレースを再生成した後にコアダンプをレポートから取り除きます" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "レポートのコアファイルを上書きします" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "レポートの ExecutablePath を上書きします" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "レポートの ProcMaps を上書きします" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "一時的なサンドボックスを作成し、必要なパッケージとデバッグシンボルをそこにダウンロードおよびインストールします。このオプションが指定されなかった場合には、" "必要なパッケージやデバッグシンボルはすでにお使いのシステムにインストールされているものとして処理を続行します。引数はパッケージングシステムの設定のベースデ" "ィレクトリを指定します。「system」を指定した場合にはシステムの設定ファイルを利用しますが、その場合には現在実行中のリリースで発生したクラッシュしかリ" "トレースできません。" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "サンドボックスにパッケージをインストールする際に、ダウンロードおよびインストールの進捗状況を表示します" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "ログメッセージの先頭にタイムスタンプを挿入します(バッチ処理用)" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "レポートで指定された提供元から、サードパーティーのリポジトリを作成して使用します。" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "サンドボックスにダウンロードされたパッケージのためのキャッシュディレクトリ" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "展開したパッケージのためのディレクトリ。これ以降はダウンロード済みのパッケージはすべてこのサンドボックスに展開されているものと仮定します。" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "クラッシュデータベース認証情報のファイルへのパス。これはリトレースしたスタックトレースをアップロードする際にクラッシュIDを指定するために使われます(-" "g, -o, または -s が指定されていない場合)。" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "-S を指定せずに -C を使用することはできません。中止します。" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "このパッケージは恐らく正常にインストールされていません" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "これは %s の公式パッケージではありません。すべてのサードパーティーのパッケージを削除して再度試してください。" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "古いバージョンのパッケージが利用されています。以下のパッケージをアップグレードした上で、それでも問題が発生するかを確認してください:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "不明なプログラム" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "残念ながら、プログラム \"%s\" が不意に終了しました" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s に問題があります" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "コンピューターに、問題を自動的に解析して開発者にレポートを送るための十分な空きメモリーがありません。" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "無効な問題のレポートです" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "この問題を報告するための権限がありません。" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "エラー" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "このレポートを作成するための空きスペースがディスクにありません。" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "パッケージが特定できません" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "パッケージまたはプロセスIDを特定する必要があります。詳しくは--helpを見てください。" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "許可がありません" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "このプロセスを操作する権限がありません。プロセスの所有者か、もしくはrootユーザとして実行してください。" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "無効なプロセスID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "指定されたプロセスIDはプログラムに属していません。" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "パッケージ %s は存在しません" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "あなたはこの問題の報告者または登録者ではありません。新しいバグとしてコメントと添付ファイルを提出するより、他のバグと重複したバグとしてマークするほうがより" "簡単です。\n" "\n" "その後、\"apport-bug\"を利用して新たにバグ報告を行い、このバグの中で提出するものについてのコメントを行うことをお勧めします。\n" "\n" "本当に進めますか?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "収集する追加情報はありません。" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "どのような種類の問題を報告しますか?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "未知のふるまい" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "ふるまい \"%s\" は知られていません。" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop はウィンドウのプロセス ID を特定できませんでした" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "パッケージ名を指定" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "レポートに追加タグを追加します。複数回指定できます。" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "バグファイリングモードを開始します。実行には --package と追加の --pid を用いるか、あるいはただ --pid " "だけとするオプションが必要です。どちらも与えられていないときには、既知の現象のリストを表示します(暗黙の一つの引数が与えられた場合)。" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "問題レポートを埋めるには、ターゲットとなるウィンドウをクリックしてください。" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "バグ更新モードを開始します。オプション --package が使用できます。" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "SYMPTOM(症状)についてのバグを報告します(唯一の引数は症状の名前を意味します)。" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "--file-bugモードで使用するパッケージ名を指定します。--" "pidが指定されている場合はオプション扱いになります(唯一の引数はパッケージ名を意味します)。" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "--file-" "bugモードの対象になる実行中のプログラムを指定します。このオプションを指定した場合、バグ報告にはより多くの情報が含まれます(唯一の引数はプロセスIDを意" "味します)。" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "指定されたpidはハングアップしたアプリケーションのものです。" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "クラッシュの報告を %s で保留中のプログラムのかわりに .apport または .crash ファイルで行う(ファイル名が引数のみで与えられた場合)。" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "バグファイリングモードでは、収集した情報は報告する代わりにファイルに保存されます。このファイルは、後で別のコンピューターから報告することができます。" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Apport のバージョン番号を表示します。" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "クラッシュの解析を行うため端末ウィンドウで apport-retrace を起動します。" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "gdb セッションを実行" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "デバッグシンボルをダウンロードせず gdb セッションを実行" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "%s を完全なシンボリックスタックトレースに更新する" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "この問題レポートは、もうインストールされていないプログラムに対するものです。" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "この問題はプログラム%sに発生したものですが、このプログラムはクラッシュしてから変更されています。" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "この問題の報告は破損しており、処理することができません。" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "この報告はインストールされていないパッケージによるものです" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "この問題の報告の処理中にエラーが発生しました:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "パッケージまたはソースパッケージ名を特定できませんでした。" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "ウェブブラウザーを起動できません" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "%s を開くためのウェブブラウザーを起動できません" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "バグ追跡システム %s にあなたのアカウント情報を入力してください" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "ネットワークの問題" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "クラッシュデータベースに接続できませんでした。インターネット接続を確認してください。" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "メモリー不足" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "あなたのシステムには、このクラッシュレポートを処理するのに十分なメモリがありません。" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "問題を報告することができません:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "問題は既知のものです" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "この問題は、ブラウザーに表示されたバグレポートですでに報告されています。開発者にとって役立つような、より詳しい情報を追加できるかどうか確認してください。" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "この問題はすでに開発者にレポートされています。ありがとうございます!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "このことは前のサスペンド中に発生しており、システムが正常に復帰できませんでした。" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "このことは前のハイバネーション中に発生しており、システムが正常に復帰できませんでした。" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "続けるには何かキーを押してください..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "対処方法を選択してください:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "選択してください(%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i バイト)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "問題のレポートが送信された後で、フォームに入力してください(入力用ページをウェブブラウザーで自動的に開きます)。" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "レポートの送信(&S) (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "ローカルで解析する(&E)" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "レポートの表示(&V)" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "後で送信もしくは他の場所にコピーするためにレポートファイルを保持する(&K)" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "中止し、このプログラムバージョンでは今後クラッシュしても無視する(&I)" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "キャンセル(&C)" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "問題報告ファイル:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "確認(&C)" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "エラー: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "収集された情報はアプリケーションを改善するために開発者へ送られます。\n" "しばらくお待ちください。" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "収集された情報はバグトラッキングシステムに送信されます。\n" "しばらくお待ちください。" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "完了(&D)" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "なし" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "現在の設定: %s。複数選択:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "選択肢:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "ファイルへのパス(Enterでキャンセル):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "ファイルが存在しません。" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "これはディレクトリです。" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "ブラウザーを今すぐ起動するか、または他のコンピューターのブラウザーにURLをコピーしてください。" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "今すぐブラウザーを起動する" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "未解決のクラッシュレポートはありません。詳しくは --help を試してみてください。" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "この問題を報告することで、問題の解決のために開発者を助けることができます。" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "パッケージ \"%s\"のインストールまたはアップグレードに失敗しました。" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "完全なレポート (推奨; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>開発者に不具合のレポートを送信しますか?</b></big>\n" #~ "\n" #~ "不具合のレポートが送信された後で、ウェブブラウザが自動的に開かれますのでフォームに入力してください。" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "秘密にしておくべき作業(パスワードや個人情報の入力など)を行っていたのでなければ、不具合を報告してアプリケーションの改善に協力することができます。" #~ msgid "Application problem" #~ msgstr "アプリケーションの不具合" #~ msgid "_Send Report" #~ msgstr "レポートを送信(_S)" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "秘密にしておくべき作業(パスワードや個人情報の入力など)を行っていたので\n" #~ "なければ、不具合を報告してアプリケーションの改善に協力することができます。" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s は %s の %s で不意に終了しました" #~ msgid "Restart _Program" #~ msgstr "プログラムを再起動(_P)" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">申し訳ありません、パッケージ \"%s\" " #~ "のインストール(アップグレード)は失敗しました。</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "完全なレポートの送信(&S) (推奨; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "簡易レポート (低速回線向け; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "今後このバージョンのプログラムがクラッシュしても無視する(_I)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "簡易レポートの送信(&R) (低速回線向け; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "これはいくつかの大きな項目をレポートから削除します。開発者がこの不具合をデバッグするのに大変役立ちますが、インターネットの接続スピードが遅い場合、アップロ" #~ "ードには大きすぎるかもしれません。" #~ msgid "&Report Problem..." #~ msgstr "不具合を報告(&R)..." #~ msgid "_Report Problem..." #~ msgstr "不具合を報告(_R)..." #~ msgid "Kernel problem" #~ msgstr "カーネルの不具合" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "不具合を報告することで、開発者がプログラムを修正するのに役立ちます。" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "これは正式な %s のパッケージではありません" #~ msgid "Content of the report" #~ msgstr "レポートの内容" #~ msgid "Package problem" #~ msgstr "パッケージの不具合" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "あなたのシステムは深刻なカーネルの問題に遭遇しました。" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "残念ながら、アプリケーション %s が予期せず終了しました" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "引数の数が不正です。--helpを使って短いヘルプを参照してください。" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [オプション] <apport 問題レポート | クラッシュ ID>" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "お使いのシステムは、現在不安定な状態で再起動が必要かもしれません。" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/kab.po����������������������������������������������������������������������������0000664�0000000�0000000�00000077443�14416106601�011603� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Kabyle translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: yugurten <yugurten1@hotmail.fr>\n" "Language-Team: Kabyle <kab@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: kab\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Agnu deg %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/kk.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077420�14416106601�011446� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Kazakh translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Kazakh <kk@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: kk\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/km.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000175623�14416106601�011454� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Khmer translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Khmer <km@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "បោះបង់" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "យល់ព្រម" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "របាយការណ៍​គាំង" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>សូម​ទោស កំហុស​ខាង​ក្នុង​បានកើត​ឡើង ។</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "ប្រសិនបើ​អ្នក​កត់​សម្គាល់​បញ្ហា​បន្ថែម ព្យាយាម​ចាប់ផ្ដើម​កុំព្យូទ័រ​ឡើង​វិញ ។" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "ផ្ញើ​របាយការណ៍​កំហុស ដើម្បីជួយ​កែ​បញ្ហា​នេះ" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "មិន​អើពើ​បញ្ហា​នាពេល​អនាគត​នៃ​កំណែ​កម្មវិធី​នេះ" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "បង្ហាញ​សេចក្ដី​លម្អិត" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "ត្រួតពិនិត្យ​ជា​មូលដ្ឋាន" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "ទុក​ឲ្យ​បិទ" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "បន្ត" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>ការ​ប្រមូល​ព័ត៌មាន​អំពី​បញ្ហា</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "ព័ត៌មាន​កំពុង​ត្រូវ​បាន​ប្រមូល​ " "​ដែល​អាច​ជា​ជំនួយ​ដល់​អ្នក​អភិវឌ្ឍន៍​ក្នុង​ការ​កែសម្រួល​របាយការណ៍​កំហុស ។" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "ផ្ទុក​ព័ត៌មាន​អំពី​បញ្ហា" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>ផ្ទុក​ព័ត៌មាន​អំពី​បញ្ហា</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "ព័ត៌មាន​ដែល​បាន​ប្រមូល​​កំពុង​ត្រូវ​បាន​ផ្ញើ​ទៅ​កាន់​កញ្ចប់​តាមដាន​កំហុស ។ " "វា​អាច​ចំណាយ​ពេលវេលា​ពីរ​បី​នាទី ។" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "ឯកសារ​គាំង​របស់ Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(ទិន្នន័យ​គោល​ពីរ)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "សូមទោស, កម្មវិធី %s បាន​បញ្ឈប់​ដោយ​មិន​រំពឹង។" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "សូម​ទោស %s បាន​បិទ​ដោយ​មិន​រំពឹង​ទុក ។" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "សូម​ទោស %s បាន​ជួប​ប្រទះ​បញ្ហា​ខាង​ក្នុង ។" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "ផ្ញើ​​របាយការណ៍​អំពី​បញ្ហា​ទៅ​កាន់​​​អ្នក​អភិវឌ្ឍន៍ ?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "ផ្ញើ" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "បង្ខំ​បិទ" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "ចាប់ផ្ដើម​ឡើង​វិញ" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "កម្មវិធី %s បាន​បញ្ឈប់​ការ​ឆ្លើយតប។" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "កម្មវិធី \"%s\" បាន​បញ្ឈប់​ការ​ឆ្លើយតប។" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "កញ្ចប់ ៖ %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "សូម​ទោស បញ្ហា​មួយ​បានកើត​ឡើង​ខណៈ​ពេល​ដំឡើង​កម្មវិធី ។" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "កម្មវិធី %s មាន​បទពិសោធន៍​កំហុស​ខាងក្រៅ។" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "កម្មវិធី %s បាន​បិទ​ដោយ​មិន​រំពឹង​ទុក ។" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "មិន​អើពើ​នឹង​បញ្ហា​នា​ពេល​អនាគត​នៃ​ប្រភេទ​នេះ" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "លាក់​សេចក្ដី​លម្អិត" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "ការ​ប្រើប្រាស់ ៖ %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "មាន​ថត​ទិសដៅ ។" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "ឈ្មោះ​អ្នក​ប្រើ ៖" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "ពាក្យ​សម្ងាត់ ៖" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "ប្រមូល​ព័ត៌មាន​អំពី​បញ្ហា" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "ប្រមូល​ព័ត៌មាន​អំពី​បញ្ហា" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "ព័ត៌មាន​ដែល​បាន​ប្រមូល​អាច​ត្រូវ​បាន​ផ្ញើ​ទៅកាន់​អ្នក​អភិវឌ្ឍន៍ " "ដើម្បី​ធ្វើ​ឲ្យ​កម្មវិធី​ប្រសើរ​ឡើង ។ វា​អាច​ចំណាយ​ពេលវេលា​ពីរបី​នាទី ។" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "ផ្ទុក​ព័ត៌មាន​អំពី​បញ្ហា" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "ប្រមូល​ព័ត៌មាន​ប្រព័ន្ធ" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "ការ​ផ្ទៀងផ្ទាត់​ត្រូវ​បាន​ទាមទារ​ដើម្បី​​ប្រមូល​ព័ត៌មាន​ប្រព័ន្ធ​សម្រាប់​របាយ" "ការណ៍​បញ្ហា​នេះ" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "របាយការណ៍​បញ្ហា​ប្រព័ន្ធ" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "សូម​បញ្ចូល​ព័ត៌មាន​លម្អិត​របស់​អ្នក​ " "ដើម្បី​​ចូល​ដំណើរការ​​​របាយការណ៍​បញ្ហា​នៃ​កម្មវិធី​ប្រព័ន្ធ" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "រាយការណ៍​បញ្ហា..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "រាយការណ៍​​កំហុស​ទៅកាន់​អ្នក​អភិវឌ្ឍន៍" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "មើល​ទំព័រ​សម្រាប់​ព័ត៌មាន​លម្អិត។" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "បញ្ជាក់​ឈ្មោះ​ឯកសារ​កំណត់​ហេតុ​ដែល​បាន​ផលិត​ដោយ valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "ប្រើ sandbox dir (SDIR) ដែល​បាន​បង្កើត​ពី​មុន​ឡើង​វិញ, ប្រសិនបើ​វា​មិន​មាន, " "បង្កើត​វា​ថ្មី" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "កុំ​បង្កើត ឬ​ប្រើ​ថត sandbox " "ឡើង​វិញ​សម្រាប់​​និមិត្ត​សញ្ញា​​បំបាត់​កំហុស​បន្ថែម " "ប៉ុន្តែ​អាស្រ័យ​លើ​និមិត្ត​សញ្ញា​បំបាត់​កំហុស។" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "ប្រើ​ថត​ឃ្លាំង​ដែល​បាន​បង្កើត​ពី​មុន​ឡើង​វិញ (CDIR) , " "ប្រសិនបើ​វា​មិន​ទាន់​មាន, បង្កើត​វា" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "រាយការណ៍​វឌ្ឍនភាព ទាញ​យក/​ដំឡើង នៅ​ពេល​កំពុង​ទាញ​យក​កញ្ចប់​ទៅ​កាន់ sandbox" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "ដំឡើង​កញ្ចប់​ខាងក្រៅ​ទៅ​ក្នុង sandbox (អាច​ត្រូវ​បាន​​បញ្ជាក់​​ពេលវេលា​ច្រើន)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "កំហុស៖ %s មិន​អាន​ប្រតិបត្តិ​បាន បាន​បញ្ឈប់។" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "ប្រព័ន្ធ​របស់​អ្នក​អាច​​គ្មាន​ស្ថេរ​ភាព​​ឥឡូវ​នេះ " "ត្រូវ​​ការ​​​ចាប់ផ្ដើម​ឡើងវិញ ។" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "កុំ​ដាក់​ដាន​ថ្មី​​​នៅ​ក្នុង​របាយការណ៍ ប៉ុន្តែ​​អាច​សរសេរ​ទាន់ stdout បាន ។" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "ចាប់ផ្ដើម​សម័យ gdb អន្តរ​សកម្ម​​ជាមួយ​ធាតុ​ចម្បង​របស់​របាយការណ៍ (-o មិន​អើពើ " "មិន​សរសេរ​របាយការណ៍​ឡើងវិញ)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "សរសេរ​របាយការណ៍​ដែល​បាន​កែប្រែ​ទៅ​កាន់​ឯកសារ​ដែល​បាន​ផ្ដល់​ជំនួស​ការ​ផ្លាស់ប្" "ដូរ​របាយការណ៍​ដើម" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "យក​ធាតុ​ចម្បង​​ចេញ​ពី​របាយការណ៍ ក្រោយ​​ពេល​ការ​ធ្វើ​ឲ្យ​មាន​​ដាន​ជង់​ឡើងវិញ" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "បដិសេធ CoreFile របស់​របាយការណ៍" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "បដិសេធ ExecutablePath របស់​របាយការណ៍" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "បដិសេធ ProcMaps របស់​របាយការណ៍" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "បង្កើត​ព័ត៌មាន​កញ្ចប់​របស់​របាយការណ៍​ឡើង​វិញ" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "បង្កើត sandbox បណ្ដោះ​អាសន្ន ហើយ​ទាញ​យក/​ដំឡើង កញ្ចប់​ដែល​ចាំបាច់ " "បំបាត់​កំហុស​និមិត្តសញ្ញា​នៅ​ទី​នេះ ដោយ​មិន​ចាំបាច់​ជម្រើស​នេះ " "សម្មត​ថា​កញ្ចប់​ដែល​ចាំបាច់ " "និង​បំបាត់​កំហុស​និមិត្ត​សញ្ញា​ត្រូវ​បាន​ដំឡើង​នៅ​ក្នុង​ប្រព័ន្ធ​រួច​ហើយ ។ " "ចំណុច​អាគុយម៉ង់​ទៅ​កាន់​ការ​កំណត់​រចនាសម្ព័ន្ធ​ប្រព័ន្ធ​ផ្អែក​លើ​ថត " "ប្រសិនបើ​អ្នក​បញ្ជាក់ \"ប្រព័ន្ធ\" " "វា​នឹង​ប្រើ​​ឯកសារ​ការ​កំណត់​រចនាសម្ព័ន្ធ​ប្រព័ន្ធ " "ប៉ុន្តែ​វា​អាច​​តាមដាន​ភាព​គាំង​ឡើង​វិញ នៅ​ពេល​ដែល​វា​ដំណើរការ​ ។" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "របាយការណ៍​ទាញ​យក/ដំឡើង វឌ្ឍនភាព​ នៅ​ពេល​ដំឡើង​កញ្ចប់​ទៅកាន់​ sandbox" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "បន្ថែម​ខាងដើម timestamps ដើម្បី​ចុះ​កំណត់ហេតុ សម្រាប់​ប្រតិបត្តិការ​ច្រើន" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "បង្កើតនិងប្រើឃ្លាំងភាគី​ទីបីពីប្រភពដើមដែលបានបញ្ជាក់លម្អិតនៅក្នុងរបាយការណ៍" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "ថត​ឃ្លាំង​សម្ងាត់​សម្រាប់​កញ្ចប់​ដែល​បាន​ទាញ​យក​នៅ​ក្នុង sandbox" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "ថត​សម្រាប់​កញ្ចប់​ដែល​មិន​បាន​វេច​ខ្ចប់។ " "ពេល​អនាគត​ដំណើរការ​នឹង​សម្មត​ថា​កញ្ចប់​ដែល​បាន​ទាញ​យក​រួច​ហើយ​ត្រូវ​បាន​ស្រង់" "​ចេញ​ទៅ​ sandbox នេះ។" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "ផ្លូវ​ទៅកាន់​ឯកសារ​​ដែល​មាន​​​​ព័ត៌មាន​អំពី​​ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ​ម" "ូលដ្ឋាន​ទិន្នន័យ​ភាព​គាំ​ ។ វា​អាច​ត្រូវ​បាន​ប្រើ​ " "នៅ​ពេល​បញ្ជាក់​លេខ​សម្គាល់​​​ភាព​គាំង " "ដើម្បី​​ផ្ទុក​ដាន​ជង់​ដែល​បាន​តាមដាន​​ឡើង​វិញ (ប្រសិនបើ​មិន​ត្រូវ​​បញ្ជាក់ -" "g, -o, និង -s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "បង្ហាញ​ដាន​ជង់​ដែល​បាន​តាម​ដាន​ឡើងវិញ " "សួរ​រក​ការ​អះអាង​មុន​ពេល​ផ្ញើ​វា​ទៅកាន់​មូលដ្ឋាន​ទិន្នន័យ​គាំង ។" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "ផ្លូវ​ទៅកាន់​មូលដ្ឋាន​ទិន្នន័យ sqlite​ ស្ទួន (លំនាំដើម ៖ " "គ្មាន​ការ​ត្រួតពិនិត្យ​ស្ទួន​ឡើង)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "អ្នក​មិន​​អាច​ប្រើ -C without -S. Stopping ។" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "យល់ព្រម​​ក្នុង​ការ​ផ្ញើ​​​ជា​ឯកសារ​ភ្ជាប់ឬ ? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "កញ្ចប់​នេះ​ហាក់​បី​ដូច​ជា​ដំឡើង​មិន​ត្រឹមត្រូវ​ទេ" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "នេះ​មិនមែន​ជា​កញ្ចប់ %s ផ្លូវ​ការ​ទេ ។ សូម​យក​កញ្ចប់​ភាគី​ទី​បី​ចេញ " "ហើយ​ព្យាយាម​ម្ដ​ងទៀត ។" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "អ្នកមាន​កំណែ​កញ្ចប់​ដែល​លែង​ប្រើ​បាន​ដំឡើង ។ " "សូម​ធ្វើ​វា​​ឲ្យ​កញ្ចប់​ដូច​ខាង​ក្រោម​ប្រសើរ​ឡើង​ " "ហើយ​ពិនិត្យ​មើល​ថាតើ​នៅ​តែ​មាន​បញ្ហា​កើត​ឡើង​ទៀត​ដែរឬទេ ៖ %s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "មិន​ស្គាល់​កម្មវិធី" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "សូម​ទោស កម្មវិធី \"%s\" មិន​ត្រឹមត្រូវ" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "បញ្ហា​នៅ​ក្នុង %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "កម្មវិធី​កុំព្យូទ័រ​របស់​អ្នក​មិន​មាន​អង្គ​ចងចាំ​គ្រប់គ្រាន់ " "ដើម្បី​ធ្វើវិភាគ​ដោយស្វ័យប្រវត្តិ ហើយ​ផ្ញើ​របាយការណ៍​ទៅ​អ្នក​អភិវឌ្ឍន៍ ។" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "របាយការណ៍​បញ្ហា​មិន​ត្រឹមត្រូវ" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "អ្នក​មិន​ត្រូវ​បាន​អនុញ្ញាត​ឲ្យ​ចូល​មើល​របាយការណ៍​បញ្ហា​នេះ ។" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "កំហុស" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "មិនមាន​ទំហំ​គ្រប់គ្រាន់​ ដើម្បី​ដំណើរការ​របាយការណ៍​នេះ​ទេ ។" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "គ្មាន​កញ្ចប់​បាន​បញ្ជាក់​ទេ" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "អ្នក​ត្រូវ​តែ​បញ្ជាក់​កញ្ចប់ ឬ​ PID ។ ចំពោះ​ព័ត៌មាន​បន្ថែម សូម​មើល --help ។" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "សិទ្ធិ​ត្រូវ​បាន​បដិសេធ" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "ដំណើរការ​ដែល​បាន​បញ្ជាក់​មិនមែនជា​របស់​អ្នក​ទេ ។ " "សូម​ដំណើរការ​កម្មវិធី​នេះ​ជា​ម្ចាស់​ដំណើរការ ឬ​ដំណើរការ​ជា root ។" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID មិន​ត្រឹមត្រូវ" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" "លេខ​សម្គាល់​ដំណើរការ​ដែល​បាន​បញ្ជាក់ មិន​មែន​ជា​របស់​កម្មវិធី​​នេះ​ទេ ។" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "ស្គ្រីប​សញ្ញា %s មិន​បាន​កំណត់​កញ្ចប់​ដែល​មាន​ប្រសិទ្ធភាព​ឡើយ" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "គ្មាន​កញ្ចប់ %s ឡើយ" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "មិន​អាច​ធ្វើ​របាយការណ៍​​បាន​ឡើយ" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "ធ្វើ​បច្ចុប្បន្នភាព​របាយការណ៍​​អំពី​បញ្ហា" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "អ្នក​មិន​មែន​ជា​អ្នក​រាយការណ៍ ឬ​អ្នក​ជាវ​នៃ​របាយការណ៍​អំពី​បញ្ហា​ឡើយ " "របាយការណ៍​គឺ​ជា​ច្បាប់​ចម្លង ឬ​បាន​បិទ​ហើយ ។\n" "\n" "សូម​ធ្វើ​របាយការណ៍​ថ្មី \"apport-bug\" ។" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "អ្នក​មិន​មែន​ជា​អ្នក​រាយការណ៍​អំពី​របាយការណ៍​បញ្ហា​នេះ​ទេ ។ " "វា​គឺ​​ងាយស្រួល​ខ្លាំង​ណាស់ ក្នុង​ការ​សម្គាល់​កំហុស​ស្ទួន​ " "ជាជាង​យក​​មតិយោបល់​របស់​អ្នក​ចេញ និង​យក​ឯកសារ​ភ្ជាប់​ទៅ​កាន់​កំហុស​ថ្មី ។\n" "\n" "យើង​ផ្ដល់​យោបល់​ឲ្យ​អ្នក ប្រើ​ឯកសារ​របាយការណ៍​កំហុស​ថ្មី​ \"apport-bug\" " "ហើយ​​​ផ្ដល់​មតិយោបល់​​អំពី​​កំហុស​​ក្នុង​ឯកសារ​នេះ ។\n" "\n" "តើ​អ្នក​ពិត​ជា​ចង់​ធ្វើ​បន្ត​ឬ ?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "គ្មាន​ព័ត៌មាន​បន្ថែម​​ដែល​បាន​ប្រមូល​ឡើយ ។" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "តើ​ប្រភេទ​បញ្ហា​អ្វី​ដែល​អ្នក​ចង់​រាយការណ៍ ?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "មិន​ស្គាល់​សញ្ញា" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "មិន​ស្គាល់​សញ្ញា \"%s\" ។" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "ក្រោយ​ពេល​​បិទ​សារ​នេះ សូម​ចុច​លើ​​បង្អួច​កម្មវិធី ដើម្បី​រាយការណ៍​អំពី​វា ។" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "បាន​បរាជ័យ xprop ដើម្បី​កំណត់​លេខ​សម្គាល់​ដំណើរការ​របស់​បង្អួច" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "បញ្ជាក់​ឈ្មោះ​កញ្ចប់ ។" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "បន្ថែម​ស្លាក​​ខាងក្រៅ​ដើម្បី​រាយការណ៍ ។ អាច​ត្រូវ​បាន​បញ្ជាក់​ពេលវេលា​ច្រើន ។" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "ចាប់ផ្ដើម​​ជា​របៀប​ការ​រៀបចំ​ឯកសារ​កំហុស ។ ទាមទារ --កញ្ចប់ និង​ជា​ជម្រើស --" "pid, ឬ --pid ។ ប្រសិនបើ​ មិន​ត្រូវ​​បាន​ផ្ដល់​ឲ្យ​ទេ​នោះ " "បង្ហាញ​បញ្ជី​សញ្ញា​ដែល​មិន​ស្គាល់ ។ (បាន​បញ្ជាក់ " "ប្រសិនបើ​អាគុយម៉ង់​ត្រូវ​បាន​ផ្ដល់​ឲ្យ ។)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "ចុច​លើ​បង្អួច​ដែល​ជា​គោលដៅ​សម្រាប់​បំពេញ​របាយការណ៍​អំពី​បញ្ហា ។" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "ចាប់ផ្ដើម​ជា​របៀប​​ការ​ធ្វើ​បច្ចុប្បន្នភាព​កំហុស ។ អាច​យក​កញ្ចប់ --ជា​ជម្រើស " "។" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "ឯកសារ​របាយការណ៍​កំហុស​អំពី​សញ្ញា ។ (បាន​បញ្ជាក់ " "ប្រសិនបើ​ឈ្មោះ​សញ្ញា​ត្រូវ​បាន​ផ្ដល់​ជា​អាគុយម៉ង់​តែមួយ ។)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "បញ្ជាក់​ឈ្មោះ​កញ្ចប់​ជា​របៀប --កំហុស-ឯកសារ ។ វា​គឺ​ជា​ជម្រើស ប្រសិនបើ --pid " "ត្រូវ​បាន​បញ្ជាក់ ។ (បាន​បញ្ជាក់ " "ប្រសិនបើ​​ឈ្មោះ​កញ្ចប់​ត្រូវ​បាន​ផ្ដល់​ជា​អាគុយម៉ង់​តែមួយ ។)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "បញ្ជាក់​ការ​ដំណើរការ​កម្មវិធី​ជា​របៀប --កំហុស-ឯកសារ ។ ប្រសិនបើ " "វា​ត្រូវ​បាន​បញ្ជាក់ របាយការណ៍​កំហុស​នឹង​មាន​ព័ត៌មាន​បន្ថែម ។ (បាន​បញ្ជាក់ " "ប្រសិនបើ pid ត្រូវ​បាន​ផ្ដល់​ជា​អាគុយម៉ង់​តែមួយ ។)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "pid ដែល​បាន​ផ្ដល់​ជា​កម្ម​វិធី​ដែល​បាន​ព្យួរ។" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "របាយការណ៍​គាំង​​ដែល​បាន​ផ្ដល់​ពី​ឯកសារ .apport ឬ .crash ជំនួស​នៅ​ក្នុង%s. ( " "បាន​បញ្ជាក់​ ប្រសិនបើ​ឯកសារ​ត្រូវ​បាន​ផ្ដល់​​តែ​អាគុយម៉ង់ ។)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "ជា​របៀប​បំពេញ​កំហុស " "រក្សាទុក​ព័ត៌មាន​ដែល​បាន​ប្រមូល​នៅ​ក្នុង​ឯកសារ​​ជំនួស​ការ​ធ្វើ​របាយការណ៍​​អំព" "ី​វា ។ ឯកសារ​នេះ​​អាច​ត្រូវ​បាន​​រាយការណ៍​​ក្រោយ​ពេល​ពី​ម៉ាស៊ីន​ខុសគ្នា ។" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "បោះពុម្ព​លេខ​កំណែ Apport ។" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "វា​នឹង​ចាប់ផ្ដើម apport-retrace នៅ​ក្នុង​បង្អួយ​ស្ថានីយ " "ដើម្បី​ត្រួតពិនិត្យ​​ភាគ​គាំង ។" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "រត់​សម័យ gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "រត់​សម័យ gdb ដោយ​មិន​ទាញ​យក​និមិត្ត​សញ្ញា​បំបាត់​កំហុស" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "ធ្វើ​បច្ចុប្បន្ន %s ជា​មួយ​ដាន​​ជា​​​និមិត្ត​សញ្ញា​ពេញលេញ" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "របាយការណ៍​អំពី​បញ្ហា​នេះ​អនុវត្ត​កម្មវិធី​ដែល​មិន​ត្រូវ​បាន​ដំឡើង​ទៀត​ឡើយ ។" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "បញ្ហា​បានកើត​ឡើង​ជា​មួយ​កម្មវិធី %s " "ដែល​បាន​ផ្លាស់ប្ដូរ​តាំង​ពី​​មាន​ការ​គាំង ។" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "របាយការណ៍​អំពី​បង្ហាញ​នេះ​ខូច ហើយ​មិន​អាច​ធ្វើ​បន្ត​បាន​ទេ ។" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "របាយការណ៍​ស្ថិត​នៅ​ក្នុង​កញ្ចប់​ដែល​មិន​ត្រូវ​បាន​ដំឡើង ។" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "កំហុស​មួយ​បាន​កើត​ឡើង​ នៅ​ពេល​ព្យាយាម​ដំណើរការ​របាយការណ៍​បញ្ហា​នេះ ៖" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "មិន​អាច​កំណត់​​ ឈ្មោះ​កញ្ចប់​ប្រភព ឬ​កញ្ចប់​បាន​ឡើយ ។" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "មិន​អាច​ចាប់ផ្ដើម​កម្មវិធី​រុករក​បណ្ដាញ​បាន​ទេ" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "មិន​អាច​ចាប់ផ្ដើម​កម្មវិធី​រុករក​បណ្ដាញ ដើម្បី​បើក %s បាន​ទេ ។" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "សូម​បញ្ចូល​ព័ត៌មាន​អំពី​គណនី​របស់​អ្នក​​សម្រាប់​ប្រព័ន្ធ​តាមដាន​កំហុស %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "បញ្ហា​បណ្ដាញ" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "មិន​អាច​តភ្ជាប់​ទៅកាន់​មូលដ្ឋាន​ទិន្នន័យ​គាំង​បាន​ទេ " "សូម​ពិនិត្យមើល​ការ​តភ្ជាប់​អ៊ីនធឺណិត​របស់​អ្នក ។" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "ការ​ប្រើ​​​អស់​អង្គ​ចងចាំ" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "ប្រព័ន្ធ​របស់​អ្នក​មិន​មាន​អង្គ​ចងចាំ​គ្រប់គ្រាន់ " "ដើម្បី​ដំណើរការ​របាយការណ៍​គាំង​នេះ​ទេ ។" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "បញ្ហា​មិន​អាច​ត្រូវ​បាន​​រាយការណ៍​ឡើយ ៖\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "ស្គាល់​​​អំពី​បញ្ហា​ហើយ" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "បញ្ហា​នេះ​ត្រូវ​បាន​រាយការណ៍​នៅ​ក្នុង​របាយការណ៍​កំហុស " "ដែល​បង្ហាញ​នៅ​ក្នុង​កម្មវិធី​រុករក​បណ្ដាញ ។ សូម​ពិនិត្យមើល " "ប្រសិនបើ​អ្នក​អាច​បន្ថែម​ព័ត៌មាន​បន្ថែម " "​​ដែល​​​អា​ផ្ដល់​ជា​ប្រយោជន៍​សម្រាប់​​អ្នក​អ្នក​អភិវឌ្ឍន៍ ។" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "បញ្ហា​នេះ​​អាច​ត្រូវ​បាន​រាយការណ៍​ទៅ​កាន់​​​អ្នក​អភិវឌ្ឍន៍ ។ អរគុណ !" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "នេះបានកើតឡើងក្នុងអំឡុងពេលការផ្អាកដងមុន " "និងបានរារាំងប្រព័ន្ធពីការដំណើរការបន្តយ៉ាងត្រឹមត្រូវ ។" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "នេះបានកើតឡើងក្នុងអំឡុងពេលការសម្ងំដងមុន " "និងបានរារាំងប្រព័ន្ធពីការដំណើរការបន្តយ៉ាងត្រឹមត្រូវ ។" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "បន្ត​ដំណើរការ hung រៀងរាល់​ជិត​បញ្ចប់ ហើយ​នឹង​លេចឡើង​នៅ​ពេល​​ដែល​បញ្ចប់​​ ។" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "ចុច​គ្រាប់ចុច​ណាមួយ​ដើម្បី​បន្ត..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "តើ​អ្នក​ចង់​ធ្វើ​វា​ដែល​ឬ​ទេ ? ជម្រើស​របស់​អ្នក​គឺ ៖" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "សូម​ជ្រើសរើស (%s) ៖" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i បៃ)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "ក្រោយ​ពេល​ផ្ញើ​របាយការណ៍​អំពី​បញ្ហា សូម​បំពេញ​សំណុំ​បែបបទ​នៅ​ក្នុង\n" "​កម្មវិធី​រុករក​បណ្ដាញ​ដែល​​បាន​បើក​ដោយ​ស្វ័យប្រវត្តិ ។" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "ផ្ញើ​របាយការណ៍ (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "ត្រួតពិនិត្យ​ជា​មូលដ្ឋាន" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "មើល​របាយការណ៍" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "រក្សាទុក​ឯកសារ​របាយការណ៍​សម្រាប់​ផ្ញើ ឬ​ចម្លង​ទៅ​​ទីតាំង​​ផ្សេង​ទៀត" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "បោះបង់ និង​មិន​អើពើ​ការ​គាំង​របស់​កំណែ​​កម្មវិធី​កម្មវិធី" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "បោះបង់" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "ឯកសារ​របាយការណ៍​អំពី​បញ្ហា ៖" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "អះអាង" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "កំហុស ៖ %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "ព័ត៌មាន​ដែល​បាន​ប្រមូល​អាច​ត្រូវ​បាន​ផ្ញើ​ទៅ​អ្នក​អភិវឌ្ឍន៍ " "ដើម្បី​ធ្វើ​ឲ្យ​កម្មវិធី​ប្រសើរ​ឡើង\n" " ។ វា​អាច​ចំណាយ​ពេលវេលា​ពីរបី​នាទី ។" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "ព័ត៌មាន​ដែល​បាន​ប្រមូល​កំពុង​​​ត្រូវ​បាន​ផ្ញើ​ទៅកាន់​ប្រព័ន្ធ​តាមដាន​កំហុស " "។\n" "វា​អាច​ចំណាយ​ពេល​ពីរបី​នាទី ។" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "ធ្វើ​រួច" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "គ្មាន" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "បាន​ជ្រើស ៖ %s ។ ពហុ​ជម្រើស ៖" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "ជម្រើស ៖" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "ផ្លូវ​ទៅកាន់​ឯកសារ (ចូល​ដើម្បី​បោះបង់) ៖" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "មិន​មាន​ឯកសារ​ទេ ។" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "វា​ជា​ថត​មួយ ។" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "ដើម្បី​បន្ត អ្នក​ត្រូវ​មើល​ URL ខាង​ក្រោម ៖" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "អ្នក​អាច​ចាប់ផ្ដើម​កម្មវិធី​រុករក​ឥឡូវ​នេះ ឬ​ចម្លង URL " "នេះ​ទៅកាន់​កម្មវិធី​រុករក​នៅ​លើ​កុំព្យូទ័រ​ផ្សេង​ទៀត ។" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "ចាប់ផ្ដើម​កម្មវិធី​រុករក​ឥឡូវ​នេះ" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "គ្មាន​របាយការណ៍​គាំង​ឡើយ ។ សាកល្បង​ជំនួយ​សម្រាប់​ព័ត៌មាន​បន្ថែម ។" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "អំឡុង​ពេល​ដែល​កើត​ឡើង​ ការ​ផ្អាក​មុន " #~ "និង​បាន​ការពារ​វា​ពី​ការ​ធ្វើ​បន្ត​យ៉ាង​ត្រឹមត្រូវ ។" #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "អំឡុង​ពេល​ដែល​បាន​កើតឡើង សម្ងំ​មុន " #~ "និង​បាន​ការពារ​ពី​ការ​ធ្វើ​បន្ត​យ៉ាង​ត្រឹមត្រូវ ។" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "អាគុយម៉ង់​មិន​ត្រឹមត្រូវ ប្រើ --ជំនួយ​សម្រាប់​ជំនួយ​ខ្លី" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "អ្នក​ត្រូវ​ធ្វើ​ប្រតិបត្តិការ​​ណាមួយ​ក៏បាន (-s, -g, -o) " #~ "ឬ​ផ្គត់ផ្គង់​ឯកសារ​ការ​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ (--auth) សូម​មើល​ជំនួយ --" #~ "សម្រាប់​ជំនួយ​ខ្លី" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "សូម​ទោស កម្មវិធី %s បាន​បិទ​ដោយ​មិន​រំពឹង​ទុក" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "ប្រព័ន្ធរបស់អ្នកអាចនឹងក្លាយទៅជាមិនស្ថិតស្ថេរពេលឥឡូវនេះហើយប្រហែលជាត្រូវការដើម្" #~ "បីត្រូវបានចាប់ផ្ដើមឡើងវិញ។" �������������������������������������������������������������������������������������������������������������apport-2.20.11/po/kn.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000117753�14416106601�011455� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Kannada translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Kannada <kn@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: kn\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "ವಿವರಗಳನ್ನು ತೋರಿಸು" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "ಮುಂದುವರಿಸು" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "ನೀವು ವರದಿ ಮಾಡಿದ ತೊಂದರೆಯನ್ನು ಸರಿ ಮಾಡಲು ವಿಕಾಸಗಾರರಿಗೆ ಸಹಾಯವಾಗಲು ಮಾಹಿತಿಯನ್ನು " "ಸಂಗ್ರಹಿಸಲಾಗುತ್ತಿದೆ." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "ತೊಂದರೆ ಮಾಹಿತಿಯನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "ಸಂಗ್ರಹಿಸಿದ ಮಾಹಿತಿಯನ್ನು ದೋಷ ಟ್ರಾಕಿಂಗ್ ವ್ಯವಸ್ಥೆಗೆ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ. ಇದು ಕೆಲವು " "ನಿಮಿಷ ತೆಗೆದುಕೊಳ್ಳ್ಬಹುದು." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport ಕುಸಿತದ ಕಡತ" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(ಬೈನರಿ ದತ್ತಾಂಶ)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "ಕ್ಷಮಿಸಿ, %s ಅನ್ವಯಿಕವು ಅನಿರೀಕ್ಷಿತವಾಗಿ ನಿಂತುಹೋಗಿದೆ" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "ಕ್ಷಮಿಸಿ, %s - ಇದು ಆಂತರಿಕ ತೊಂದರೆಯನ್ನು ಅನುಭವಿಸುತ್ತಿದೆ" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "ದೋಷ ವರದಿಯನ್ನು ವಿಕಾಸಗಾರರಿಗೆ ರವಾನಿಸುವುದೇ?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "ಕಳುಹಿಸು" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "ಬಲವಂತವಾಗಿ ಮುಚ್ಚಿದೆ" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "ಮರುಪ್ರಾರಂಭಿಸು" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "%s - ಈ ಅನ್ವಯಿಕೆಯು ಸ್ಪಂದಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿದೆ" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "%s - ಈ ತಂತ್ರಾಂಶವು ಸ್ಪಂದಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿದೆ" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "ಕುಸಿತದಿಂದ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "ಒಂದು ತೊಂದರೆಯನ್ನು ವರದಿ ಮಾಡು..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "ಒಂದು ಅಸಮರ್ಪಕ ಕಾರ್ಯವನ್ನು ವಿಕಾಸಗಾರರಿಗೆ ವರದಿ ಮಾಡು" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "ಹೊಸ ಜಾಡನ್ನು (ಟ್ರೇಸ್) ವರದಿಗೆ ಬರೆಯಬೇಡ, ಬದಲಾಗಿ ಅದನ್ನು stdout ಗೆ ಬರೆ" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "ಮೂಲ ವರದಿಯನ್ನು ಬದಲಾಯಿಸುವ ಬದಲು ಬದಲಾವಣೆ ಮಾಡಿದ ವರದಿಯನ್ನು ಹೇಳಿದ ಕಡತಕ್ಕೆ ಬರೆ" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "ಈ ಕಡತಗಳನ್ನು ಲಗತ್ತಿಸಿ ಕಳುಹಿಸಲು ಸಮ್ಮತಿಯೆ? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "ನೀವು ಕೆಲವು ಹಳೆ ಆವ್ರತ್ತಿಯ ಪ್ಯಾಕೆಜ್ ಗಳನ್ನ ಅನುಸ್ಥಾಪಿಸಿ ಕೊಂಡಿದ್ದೀರಿ. ದಯವಿಟ್ಟು " "ಕೆಳಕಂಡ ಪ್ಯಾಕೆಜ್ ಗಳನ್ನ ಅಪ್ಗ್ರೇಡ್ ಮಾಡಿಕೊಂಡು ದೋಷ ಮರುಕಳಿಸುತ್ತದೆಯೆ ಎಂದು ಗಮನಿಸಿ\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "ಅಜ್ಜ್ನಾತ ಪ್ರೋಗ್ರಾಮ್" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "ಕ್ಷಮಿಸಿ %s ಪ್ರೋಗ್ರಾಮ್ ಅನಿರೀಕ್ಷಿತವಾಗಿ ಅಂತ್ಯಗೊಂಡಿದೆ" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s ನಲ್ಲಿ ತೊಂದರೆ" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "ಅಸಿಂಧುವಾದ ತೊಂದರೆ ವರದಿ" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "ನಿಮಗೆ ಈ ತೊಂದರೆ ವರದಿಯನ್ನು ಪರಿಶೀಲಿಸುವ ಅಧಿಕಾರವಿಲ್ಲ" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "ದೋಷ" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "ಈ ತೊಂದರೆ ವರದಿಯನ್ನು ಪರಿಶೀಲಿಸಲು ಬೇಕಾಗುವಷ್ಟು ಸ್ಥಳಾವಕಾಶ ನಿಮ್ಮ ಗಣಕಯಂತ್ರದ " "ಡಿಸ್ಕ್(ಮುದ್ರಿಕೆಯಲ್ಲಿ) ನಲ್ಲಿ ಇಲ್ಲ" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "ಯಾವುದೇ ಪ್ಯಾಕೆಜ್ ಹೇಳಲಾಗಿಲ್ಲ" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "ನೀವು ಪ್ಯಾಕೆಜ್ ಅಥವಾ PID ಯನ್ನು ಉಲ್ಲೇಖಿಸಬೇಕು. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ --help ಅನ್ನು " "ನೋಡಿ" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "ಅನುಮತಿಯು ನಿರಾಕರಿಸಲ್ಪಟ್ಟಿದೆ" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "ಉಲ್ಲೇಖಿಸಿದ ಪ್ರಕ್ರಿಯೆಯು ನಿಮಗೆ ಸಂಬಂಧಿಸಿದಲ್ಲ. ದಯವಿಟ್ಟು ಈ ಅನ್ವಯವನ್ನು ಪ್ರಕ್ರಿಯೆಯ " "ಯಜಮಾನನಾಗಿ ಅಥವಾ root ಆಗಿ ಚಾಲನೆ ಮಾಡಿ." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "ಅಮಾನ್ಯವಾದ pid" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "ಉಲ್ಲೇಖಿಸಿದ ಪ್ರಕ್ರಿಯೆಯ ID ಯಾವುದೇ ಅನ್ವಯಕ್ಕೆ ಸಂಬಂಧಿಸಿದ್ದಲ್ಲ" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "%s ಪ್ಯಾಕೆಜ್ ಅಸ್ಥಿತ್ವದಲ್ಲಿಲ್ಲ" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "ನೀವು ಯಾವ ವಿಧದ ತೊಂದರೆಯನ್ನು ವರದಿ ಮಾಡಲು ಬಯಸುತ್ತೀರಿ" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "ಅಜ್ಞಾತ ಕುರುಹು" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "\"%s\" ಕುರುಹಿನ ಬಗ್ಗೆ ತಿಳಿದಿಲ್ಲ." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Apport ನ ಆವೃತ್ತಿ ಸಂಖ್ಯೆಯನ್ನು ಮುದ್ರಿಸು." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "ಈ ತೊಂದರೆ ವರದಿ ಹಾನಿಗೊಂಡಿದೆ ಆದುದರಿಂದ ಪರಿಷ್ಕರಣೆ ಮಾಡಲಾಗುತ್ತಿಲ್ಲ" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "ಜಾಲ ವೀಕ್ಷಕವನ್ನು ಆರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ." #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "%s ಅನ್ನು ತೆರೆಯಲು ಜಾಲ ವೀಕ್ಷಕವನ್ನು ಆರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "ಮೆಮೊರಿ ಖಾಲಿಯಾಗಿದೆ" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "ಈ ತೊಂದರೆಯನ್ನು ವರದಿ ಮಾಡಲಾಗದು:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "ಈಗಾಗಲೆ ತಿಳಿದಿರುವ ತೊಂದರೆ." #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "ಮುಂದುವರೆಯಲು ಯಾವುದಾದರು ಕೀಲಿಯನ್ನು ಅದುಮಿ..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "ದಯವಿಟ್ಟು ಆಯ್ಕೆ ಮಾಡಿ (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "ವರದಿಯನ್ನು ಕಳುಹಿಸು (%s) (&S)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "ವರದಿಯನ್ನು ವೀಕ್ಷಿಸು (&V)" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "ರದ್ದುಗೊಳಿಸು(&C)" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "ತೊಂದರೆ ವರದಿ ಕಡತ:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "ಖಚಿತಪಡಿಸು(&C)" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "ದೋಷ: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "ಅನ್ವಯವನ್ನು ಸುಧಾರಿಸಲು ಸಂಗ್ರಹಿಸಿದ ಮಾಹಿತಿಯನ್ನು ವಿಕಾಸಗಾರರಿಗೆ ಕಳುಹಿಸಬಹುದು.\n" "ಇದು ಕೆಲವು ನಿಮಿಷ ತೆಗೆದು ಕೊಳ್ಳಬಹುದು." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "ಸಂಗ್ರಹಿಸಿದ ಮಾಹಿತಿಯನ್ನು ದೋಷ ಟ್ರಾಕಿಂಗ್ ವ್ಯವಸ್ಥೆಗೆ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ.\n" "ಇದು ಕೆಲವು ನಿಮಿಷ ತೆಗೆದುಕೊಳ್ಳ್ಬಹುದು." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "ಆಯಿತು(&D)" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ಯಾವುದೂ ಅಲ್ಲ" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "ಆಯ್ಕೆಗಳು:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "ಕಡತ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "ಇದು ಕಡತ ಕೋಶವಾಗಿದೆ" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "ಜಾಲ ವೀಕ್ಷಕವನ್ನು ಆರಂಭಿಸು" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "%s ಅಸಲಿ ತಂತ್ರಾಂಶ(ಪ್ಯಾಕೆಜ್) ಅಲ್ಲ" #~ msgid "&Report Problem..." #~ msgstr "ತೊಂದರೆಯನ್ನು ವರದಿಮಾಡು (&R)" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "ಸಂಪೂರ್ಣ ವರದಿಯನ್ನು ರವಾನಿಸಿ (&S)(ಸೂಚಿಸಲಾಗಿದೆ; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "" #~ "ಮೊಟಕುಗೊಳಿಸಿದ ವರದಿಯನ್ನು ರವಾನಿಸು (&S) (ನಿಧಾನವಿರುವ ಅಂತರ್ಜಾಲ ಸಂಪರ್ಕಗಳಿಗೆ; %s)" #~ msgid "Application problem" #~ msgstr "ಅನ್ವಯದ ತೊಂದರೆ" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "ಪೂರ್ಣ ವರದಿ (ಸೂಚಿಸಲಾದ; %s)" #~ msgid "Content of the report" #~ msgstr "ವರದಿಯ ಅಂಶಗಳು" #~ msgid "Kernel problem" #~ msgstr "ಕರ್ನೆಲ್ ತೊಂದರೆ" #~ msgid "Package problem" #~ msgstr "ಪ್ಯಾಕೇಜ್ ತೊಂದರೆ" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "ಮೊಟಕುಗೊಳಿಸಿದ ವರದಿ (ನಿಧಾನವಿರುವ ಅಂತರ್ಜಾಲ ಸಂಪರ್ಕಕ್ಕೆ; %s)" #~ msgid "Restart _Program" #~ msgstr "ಅನ್ವಯವನ್ನು ಮರು ಪ್ರಾರಂಭಿಸು (_P)" #~ msgid "_Report Problem..." #~ msgstr "ತೊಂದರೆಯನ್ನು ವರದಿಮಾಡು ... (_R)" #~ msgid "_Send Report" #~ msgstr "ವರದಿಯನ್ನು ಕಳುಹಿಸು (_S)" ���������������������apport-2.20.11/po/ko.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000116352�14416106601�011450� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Korean translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # Eungkyu Song <eungkyu@gmail.com>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: Namhyung Kim <namhyung@gmail.com>\n" "Language-Team: Korean <ko@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ko\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>문제점 정보를 수집하는 중</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "개발자가 여러분이 보낸 보고서를 통해 문제점을 해결할 수 있도록 정보를 수집하고 있습니다." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "문제점 정보를 업로드하는 중" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>문제점 정보를 업로드하는 중</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "수집된 정보를 버그 추적 시스템으로 전송하고 있습니다. 이 작업은 몇 분 정도 걸릴 수 있습니다." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(바이너리 데이터)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "문제점을 개발자에게 보고하시겠습니까?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "문제점 정보를 모으는 중" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "문제점 보고..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "개발자에게 버그를 보고합니다" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "오래된 버전의 패키지가 몇 개 설치되어 있습니다. 다음 패키지들을 업그레이드한 후 계속 문제가 발생하는지 점검해 주십시오:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "알 수 없는 문제" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "죄송합니다. \"%s\" 프로그램이 예상치 않게 종료되었습니다" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s 내의 문제" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "여러분의 컴퓨터에는 자동으로 문제점을 분석하여 개발자에게 보고서를 보낼 수 있을 정도의 충분한 메모리가 없습니다." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "올바르지 않은 문제점 보고서" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "이 문제점 보고서에 접근하도록 허용되지 않았습니다." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "오류" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "디스크 공간이 부족하여 보고서를 처리할 수 없습니다." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "패키지가 지정되지 않음" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "패키지 혹은 PID를 지정해야 합니다. --help 옵션을 이용하여 정보를 볼 수 있습니다." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "권한이 없음" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "지정된 프로세스는 여러분이 실행한 것이 아닙니다. 이 프로그램을 직접 실행하거나 root 사용자로 실행하십시오." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "%s 패키지가 존재하지 않습니다" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "어떤 종류의 문제점을 보고하시겠습니까?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "알려지지 않은 증상" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "\"%s\"은 알려지지 않은 증상입니다." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "문제점 보고서가 손상되어 처리할 수 없습니다." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "보고서가 설치되지 않는 패키지에 속해 있습니다." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "패키지나 소스 패키지 이름을 알아낼 수 없습니다." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "웹 브라우저를 시작할 수 없습니다" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "웹 브라우저를 이용하여 %s을(를) 열 수 없습니다." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "네트워크 문제" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "메모리 부족" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "시스템에 충돌 보고서를 처리할 수 있을 만큼의 여유 메모리가 없습니다." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "문제점을 보고할 수 없습니다:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "이미 알려진 문제" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "이 문제는 웹 브라우저에 표시된 버그 보고서에 이미 보고된 것입니다. 개발자에게 도움이 될 만한 추가적인 정보를 제공할 수 있는지 점검해 " "주십시오." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "아무키나 누르면 계속합니다..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "어떤 작업을 수행하시겠습니까?" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "선택해 주십시오 (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "문제점 보고서가 전송된 후에, 자동으로 열리는 웹 브라우저 내의 문항을\n" "작성해 주시기 바랍니다." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "보고서 보내기(&S) - (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "보고서 보기(&V)" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "나중에 보내거나 다른 곳에 복사해 두기 위해 보고서 파일 저장(&K)" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "이 버전의 프로그램에서 다시 문제가 발생해도 무시하기(&I)" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "취소(&C)" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "문제점 보고서 파일:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "확인(&C)" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "오류: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "수집된 정보는 프로그램을 개선하기 위해 개발자에게 보낼 수 있습니다.\n" "이 과정은 몇 분 정도 걸립니다." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "수집된 정보가 버그 추적 시스템으로 전송되고 있습니다.\n" "이 과정은 몇 분 정도 걸릴 수 있습니다." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "대기 중인 문제점 보고서가 없습니다. --help 옵션을 이용하여 다른 정보를 볼 수 있습니다." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "보고서 작성 (추천; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>이 문제를 개발자에게 보고하시겠습니까?</b></big>\n" #~ "\n" #~ "버그 보고서를 보내고 난 후에, 웹 브라우저에 자동으로 열리는 페이지의 정보를 입력해 주십시오." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "(암호 또는 다른 개인 정보를 입력하는 것과 같은) 보안 작업을 수행하지 않았다면, 문제점을 보고하여 프로그램을 개선하도록 도울 수 " #~ "있습니다." #~ msgid "Application problem" #~ msgstr "프로그램 문제점" #~ msgid "_Send Report" #~ msgstr "보고서 보내기(_S)" #~ msgid "Restart _Program" #~ msgstr "프로그램 재시작(_P)" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">죄송합니다. \"%s\" 패키지의 설치 혹은 업그레이드가 " #~ "실패했습니다.</span>" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "보고서 경량화 (느린 인터넷 연결: %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "이 버전의 프로그램에 대해 이후의 문제 발생시 무시(_I)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "이것은 보고서에서 많은 항목을 제거합니다. 이 정보들은 개발자가 문제점을 고치는 데에는 매우 유용하지만, 인터넷 접속이 느리다면 " #~ "업로드하기에는 너무 클 수 있습니다." #~ msgid "_Report Problem..." #~ msgstr "문제점 보고(_R)..." #~ msgid "Kernel problem" #~ msgstr "커널 문제" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "문제점을 보고하여 개발자들이 패키지를 수정하도록 도와줄 수 있습니다." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "이것은 순수한 %s 용 패키지가 아닙니다" #~ msgid "Content of the report" #~ msgstr "보고서의 내용" #~ msgid "Package problem" #~ msgstr "패키지 문제" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "시스템에 심각한 커널 문제가 발생하였습니다." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "이 문제를 보고하여 개발자들이 문제를 해결할 수 있도록 도와줄 수 있습니다." #~ msgid "&Report Problem..." #~ msgstr "문제점 보고...(&R)" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "\"%s\" 패키지가 설치 혹은 업그레이드 과정에서 실패하였습니다." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "만약 비밀 정보를 다루는 작업 (암호 혹은 다른 개인 정보를 입력하는 일)\n" #~ "을 수행하는 중이 아니었다면, 문제점을 보고하여 프로그램을 개선하도록\n" #~ "도움을 줄 수 있습니다." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s 프로그램이 예상치 않게 종료되었습니다 (%s %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "간소화한 보고서 보내기 (&R) - (느린 인터넷 연결 시; %s)" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "완전한 보고서 보내기(&S) - (추천; %s)" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ku.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000132232�14416106601�011451� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Kurdish translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: rizoye-xerzi <rizoxerzi@gmail.com>\n" "Language-Team: Kurdish <ku@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ku\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Betal bike" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "TEMAM" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Rapora hilweşînê" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Bibexşîne, xetayeke hundirîn derket.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Eger zêdetir pirsgirêk derkevin, hewl bide ku kombersa xwe cardin bidî " "destpêkirin." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Problemên vê bernameyê yên ku di dahatûyê de derkevin piştguh bike" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Kîtekîtan Nîşan bide" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Analîza herêmî bike" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Girtî Bihêle" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Berdewam" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Agahiyên pirsgirêkê tên civandin</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Agahiyên di çareserkirina pirsgirêka ku te rapor kiriye de îhtîmal hebe ku " "alîkariyê bidin pêşdebiran têne civandin." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Agahiyên pirsgirêkê tên vebarkirin" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Agahiyên pirsgirêkê tên barkirin</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Agahiyên civandî ji sîstema şopandina çewtiyan re tê şandin. Dibe ku ev çend " "deqeyan bigire." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Peldanka hilweşînê a Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(daneya cot)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Me bibexşîne, sepana %s bi awayekî nehêvîkirî sekinî." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Bibore, %s bi awaekî nehêvîkirî hate girtin." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Bibore, xetayeke navxweyî bi serê %s de hat." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Bila raporeke pirsgirêkê ji pêşdebiran re bê şandin?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Bişîne" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Zorê Bide ku Bigire" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Ji nû ve bide destpêkirin" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Sepana %s cewabdanê sekinand." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Bernameya \"%s\" cewabdanê sekinandiye." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakêt: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Bibore, gava ku nivîsbarî bar dibû pirsgirêkek derket holê." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Sepana %s pêrgî xetayeke navxweyî bû." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Sepana %s bi awayekî nehêvîkirî hate girtin." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Di pêşerojê de guh nede pirsgirêkên bi vî awayî." #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Dêtayan Veşêre" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Bikaranîn: %s <rapor> <pêrista hedef>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Pêrista ku tê hedefkirin jixwe heye û ne vala ye." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Navê bikarhêner:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Şîfre:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Civandina Agahiyên Pirsgirêkê" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Agahiyên pirsgirêkê tên civandin" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Agahiyên civandî, ji bo pêşvebirina sepanê ji pêşdebiran re dikare were " "şandin. Ev dibe ku çend deqeyan bigire." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Agahiyên Pirsgirêkê Têne Şandin" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Agahiyên sîstemê bicivîne" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Ji bo vê rapora pirsgirêkê di civandina agahiyên sîstemê de destûrdarkirin " "lazim e" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Raporên pirsgirêkê yên sîstemê" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Xêra xwe ji bo bigihîjî raporên pirsgirêkê yên bernameyên sîstemê şîfreya " "xwe têkeve" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Pirsgirêkeke ragihîne..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Ji pêşdebiran re arîzeyeke rapor bike" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Ji bo dêtayan binêre rûpela man." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "navê peldanka rojaneyê ya ji alî valgrid ve çêkirî diyar bike" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "sandbox dir'a (SDIR) ku berê hatiye çêkirin dîsa bi kar bîne an jî eger tine " "be, çêbike" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "ji bo zêdetir sembolên neqandina xetayan pêrista sandbox'ê cardin bi kar " "neyîne an çêneke, tenê sembolên neqandina xetayan ên sazkirî bi kar bîne." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "pêrista pêşbîrê (CDIR) yê ku di berê de hatiye çêkirin cardin bi kar bîne an " "jî eger tine be, çêke" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "gava ku pakêt li sandboxê bar bibin pêşdeçûna daxistin/sazkirinê rapor bike" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "ji bo tesbîtkirina çizirînê ya bîrkanê sepana ku di bin aleta memcheck a " "valgrind de dişixule" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Pakêteke ekstra li nava sandbox'ê bar bike (ji yekî zêdetir dikarî diyar " "bikî)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Çewtî: %s ne bikarbar e. Tê sekinandin." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Sîstema te vêga dibe ku bikeve halekî bêqerar û dibe ku ji nû ve destpêkirin " "hewce bike." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Di raporê de îşaretên nû daneyne, li şûna wê wan li stdout'ê binivîse." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Bi agahiyên raporê yê dawîn re danişîneke gdb ya înteraktîv bide destpêkirin " "(-o wê nêye hesibandin, rapor cardin nayê nivîsandin)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Li cihê ku tu rapora heqîqî biguherînî, rapora sererastkirî li peldanka ku " "hatiye dayîn binivîse" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Piştî sererastkirina şopandina komikan kitekita dendikê ji raporê vekişîne." #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "PeldankaDendik a raporê bêhukm bike" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Riya şixulbar ya raporê (ExecutablePath) bêhukm bike" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "ProcMaps'ên raporê bêhukm bike" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Agahiyên raporê yên yêdek tamîr bike" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Qadeke testê ya demkî çêbike û pakêtên hewce û sembolên debugan li vir " "daxîne/saz bike; bêyî vê vebijêrkê wê bê ferzkirin ku pakêtên hewce û " "sembolên debugan di sîstemê de jixwe hatine sazkirin. Argument wê pêrista " "mîhengkirinê ya sîstema pakêtkirinê îşaret bikin; eger tu wek \"sîstem\" " "diyar bikî, wê ew peldankên mîhengkirinê ya sîstemê bi kar bîne, lê wê wî " "çaxê tenê karibe here çavkaniya hilweşînên di versiyona berdest de aniha " "dixebitin." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Gava ku pakêt li nava sandboxê bêne sazkirin daxistin/sazkirinê rapor bike" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Ji bo karên desteyî li pêşiya peyaman etîketên demê zêde bike" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Di raporan de depoyên kesên sêyem yên ku eslên wan diyarkirî çêbike û bi kar " "bîne" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Pêrista pêşbîrê yê ji bo pakêtên ku li nava sandboxê hatine daxistin" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Pêrista ji bo pakêtên nevekirî. Ferz dike ku pakêtên ku jixwe daxistî ne û " "wê paşê werin xebitandin jî wê li vê sandbox'ê werin derxistin." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Riyeke peldankê ê ku agahiyên hilweşînê ya piştrastkirina danegehê bihewîne " "diyar bike. Ev wê gava diyarkirina IDya hilweşînê ji bo barkirina şopên " "komikan yên ku ji çavkaniya wan re gihîştî bêne bikaranîn (tenê eger -g, -o, " "an -s nehitibin diyarkirin)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Şopên komikan yên ji nû ve çêkirî nîşan bide û berî ku wan bişînî danegeha " "hilweşînê tesdîqê bixwaze." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "Riya danegeha kopiya sqlite'ê (ya standard: kontrola kopiyê tine)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Tu nikarî -C'yê bêyî -S bi kar bînî. Tê sekinandin." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Bila wekî bestekî werin şandin? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Ev pakêt wekî ku bi awayekî rast bar bûbe nayê xuyan" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ev ne pakêteke fermî ya %s (y)e. Xêra xwe yek ji pakêtên kesên sêyem rake û " "dîsa bicerribîne." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Te hinek guhertoyên pakêtên kevn barkiriye. Ji kerema xwe re pekêtên li " "xwarê ilind bikin û qonrol bikin ku pirsgirêk berdewam bike:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "bernameya nenas" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Xemgînim, bernameya \"%s\" bi awayekî ne dihat hêvîkirin hat girtin." #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Pirsgirêk di %s de" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Komputera te ne xwediyê têr bîr e ku bixeber vê pirsgirêkê analîz bike û " "raporekê ji pisporan re bişîne." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Raporkirina pirsgirêkê ya ne derbasdar" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Destûra te tune tu bigihîjî vê rapora pirsgirêkê." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Çewtî" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Ji bo kirina vê raporê têr valahiya dîskê tune." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Pakêt nehatiye diyarkirin" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Divê tu pakêtekê yan jî PID'ekî dîyarbikî. Ji bo agahiya zêdetir li --help " "binêre." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Destûr nehate dayîn" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Kirara dîyarkirî ne aîdî te ye. Ji kerema xwe ra bernameyê wekî ku xwediyê " "kirarê root be bixebitînin." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID'a nederbasdar" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "ID ya kirarê ku hatiye dîyarkirin ne aîdî bernameyekê ye." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Skrîpta symptomê %s pakêteke tesîrlêbûyî tesbît nekiriye" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Pakêta %s tune" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Rapor nikare were çêkirin" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Rapora pirsgirêkê tê rojanekirin" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Tu ne ragihîner an jî taqîbkera vê rapora pirsgirêkê yî, an jî rapor cot e " "an jî jixwe girtî ye\n" "\n" "Xêra xwe bi bikaranîna \"apport-bug\" raporeke nû çêbike." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Tu ne ragihînera vê rapora pirsgirêkê yî. Xetayeke wekî kopiya yekî din " "îşaretkirin ji neqlkirina şîrove û bestekiyan ya ber bi xetayeke nû ve pir " "rehettir e.\n" "\n" "Dûre, em ji te re pêşniyar dikin ku tu bi bikaranîna \"apport-bug\"ê " "raporeke nû ya xetayê çêbikî û derheqê vê xetaya ku te çêkiriye de " "şîroveyeke bikî.\n" "\n" "Jidil dixwazî dewam bikî?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Ti agahiyeke zêdetir nehate civandin." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Pirsgirêkeke bi çi awayî tu dixwazî rapor bikî?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Nîşaneya nenas" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Nîşaneya \"%s\" nayê zanîn." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Piştî ku te vê peyamê girt xêra xwe ji bo raporkirina pirsgirêka derbarê vê " "de bitikîne ser paceyeke sepanê." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop di tesbîtkirina IDya kirariyê ya paceyê de bi ser neket" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <nimreya raporê>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Navê pakêtê diyar bike." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Etîketekî ekstra li raporê zêde bike. Ji yek caran zêdetir dikare were " "diyarkirin." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Di moda pelkirina çewtiyan de destpêbike. --package hewceye û bi dilxwazî " "yek --pid, ya jîbi tenê --pid ek. Kû yek jî nê dayîn listeya nîşaneyên tên " "zanin nîşandide.(Tê wateya ku hebek arguman bê dayîn.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Ji bo tijîkirina rapora pirsgirêkê wekî hedefek bitikîne paceyeke." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Di moda rojanekirina çewtiyê de bide destpêkirin. Eger bixwazî dikarî -" "package'ek hildî." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Di dermafê nîşaneyê de raporeke çewtiyê bipel bike.(Tê wateya ku li şûna " "argumanê navê nîşaneyê bê dayîn.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Navê peldankê di moda --file-bug de diyar bike. Eger --pid hatibe " "diyarkirin, ev girêdayî daxwazê ye. (Eger navê pakêtê wekî yek argumanek " "hatibe dayîn.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Bernameyeke ku di moda --file-bug de bixebite diyar bike. Eger ev " "nediyarkirî be, rapora pirsgirêkê wê zêdetir dêtayan bihewîne. (Tê qesdkirin " "ku eger PID wekî yek argumenek hatibe dayîn.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Pid'a diyarkirî (id'ya bernameyê) sepanekî nexilasbûyî ye." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Rapora çewtiyê li şûna yên ku di %s de li bendê ne ji peldankên .apport an " ".crash ragihîne. (Eger navê peldankê wekî yek argumenek be.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Di moda tijîkirina çewtiyê de, li şûna ku wan ragihînî agahiyên berhevkirî " "qeydê peldankekî bike. Ev peldank paşê ji makîneyek din dikare bê raporkirin." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Hejmara guhertoya Apport çap bike." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Ev wê ji bo lêkolîna hilweşînê, di paceya termînalê de fermana \"apport-" "retrace\" bide xebitandin." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Danişîna gdb bixebitîne" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" "Danişîna gdb'yê bêyî daxistina sembolên neqandina çewtiyan bixebitîne" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Temamiya peldanka %s bi şopa komikê ya sembolîk rojane bike" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Ev rapora çewtiyan li ser bernameyên ku kîjan hêja ne sazkirî be tê sepandin." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Bernameya %s ji wexta hilweşînê û pê ve guherî û tê de pirsgirêkek derkete " "holê." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Ev rapora pirsgirêkê xerabe ye û nayê kirin." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Rapor aîdê pakêteke ne barkirî ye." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Gava dixebitî ku vê rapora pirsgirêkê qeyd bike çewtiyek derket:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Nikare pakêtê destnîşan bike an jî navê pakêtê bibîne." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Nikare geroka webê bide destpêkirin" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Nikare geroka webê bide destpêkirin ji bo vekirina %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Agahiyên hesabê xwe têkevinê ji bo pergala %s ya şopandina çewtiyan." #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Pirsgirêka torê" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Nikare bi danegeha hilweşînê ve bê girêdan, Girêdana xwe yê întenetê kontrol " "bike." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Têrnekirina bîrkanê" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "Di pergala te de têr bîr tuneye ku kirara vê rapora çewtiyê bike." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Ev pirsgirêk nayê raporkirin:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Pirsgirêk jixwe tê zanîn" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ev pirsgirêk di rapora xetayê ya ku ser geroka webê tê nîşandan de jixwe " "hatiye raporkirin. Xêra xwe kontrol bike gelo tu dikarî ji bo alîkarbûna " "pêşvebiran agahiyeke zêdetir lê zêde bikî an na." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ev pirsgirêk ji pêşdebiran re jixwe hatiye raporkirin. Mala te ava!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Ev rewş ji ber rawestandinê derketiye holê û bûye asteng ku sîstem bi " "awayekî rast dewam bike xebitandinê." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Ev hal ji ber xistina xewê ya beriya vê derketiye û nehiştiye ku sîstem rast " "dewam bike şixulandinê." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Miameleya dawîn li ciyekî nêzî xelasbûnê eliqî ma û wê wekî ku bi awayekî " "normal temam bûbe were xuyan." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Ji bo berdewamê pê li bişkokekê bikin..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Tu dixwazî çi bikî? Alternatîvên te:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Xêra xwe bibijêre (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bayt)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Pîştî rapor hat şandin ji kerema xwe ra forma di geroka webê de ku \n" "bixweber vebû dagirin." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Raporê bişîne (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Analîza herêmî bike" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "Raporê &bibîne" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "Ji bo paşê bişînî yan jî tomar bikî ciye&kî din raporê veşêre" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Betal yan jî &Derbasbibe di hilweşînên vê bernameyê yên di pêşerojê de" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Betal" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Pela rapora pirsgirêkê:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Erê bike" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Çewtî: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Agahiyên civandî kare bê şandin ji pisporan re ji pêşxistina sepanê.\n" "Ev dibe ku çend xulekan bigire." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Agahiyên civandî ji pergala şopandina çewtiyan re tên şandin.\n" "Ev dibe ku çend xulekan bigire." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Temam" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "tune" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Bijartî: %s. Bijartinên pirjimar:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Vebijêrk:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Riya pelê (\"Enter\" ji bo betalkirinê):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Pel tune" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Ev pêristek e." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Ji bo berdewamê divê tu serî li URL'ya jêr bidî." #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Tu karî niha gerokekê bixebitînî, yan jî URL'yê kopî bikî ji bo di " "kompûtereke din de binêrî." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Gerokekê bixebitîne" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Raporên hilweşînê yê bendewar tunin. Ji bo agahiya zêdetir --help " "biceribînin." #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Ev yek dê hin hêmanên mezin ji raporê bibe. Ev tiştekî asayî ye ji bo " #~ "pêşdebiran, lê dibe ku ji bo te tiştekî gelekî mezin be ku tu barbikî heke " #~ "girêdana interneta te giran be." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Ev ne pakêteke xweser ya %s e." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Sazkirin yan jî bilindkirna pakêta \"%s\" biserbeket." #~ msgid "&Report Problem..." #~ msgstr "Pirsgirêkê &Raporbike..." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Ger te tiştekî veşartî nekiribe (têketine nasnavê yan jî agahiyên \n" #~ "taybet yên din), tu dikarî sepanê bi pêşbixî bi raporkirina \n" #~ "pirsgirêkê." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s bê hêvîkirin hat girtin li ser %s di %s de." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Pergala te leqayî pirsgirêkeka girîng ya kernel'ê hat." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Rapora &kêmkirî bişîne (girêdana înternetê ya hêdî; %s)" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Bi raporkirina pirsgirêkê tu alîkariya pisporan bikî ji bo tamîrkirina " #~ "pakêtê." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Bi raporkirina vê tu dikarî ji bo çareserkirina pirsgirêkê alîkariya " #~ "pisporan bikî." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Hemû raporê bişîne(Tê pêşniyarkirin; %s)" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/lo.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077410�14416106601�011452� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Lao translation for apport # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2008. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Lao <lo@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/lt.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000136664�14416106601�011466� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Lithuanian translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Marius Gedminas <marius@gedmin.as>\n" "Language-Team: Lithuanian <lt@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: lt\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Strigties pranešimas" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Atsiprašome, įvyko vidinė klaida.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Jei pastebite tolesnių problemų, mėginkite paleisti kompiuterį iš naujo." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Siųsti pranešimą apie klaidą, kad padėtų ištaisyti šią problemą" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignoruoti šios programos versijos problemas ateityje" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Rodyti išsamiau" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Ištirti vietoje" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Palikti užvertą" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Tęsti" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Renkama informacija apie problemą</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Renkama informacija, kuri gali padėti kūrėjams pataisyti problemą apie kurią " "pranešėte." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Išsiunčiama informacija apie problemą" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Siunčiama informacija apie problemą</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Surinkta informacija siunčiama į klaidų sekimo sistemą. Tai gali užtrukti " "keletą minučių." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport strigties failas" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(dvejetainiai duomenys)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Atsiprašome, programa „%s“ netikėtai sustojo." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Atsiprašome, %s netikėtai užsivėrė." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Atsiprašome, %s patyrė vidinę klaidą." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Siųsti pranešimą apie problemą kūrėjams?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Siųsti" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Paleisti iš naujo" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Programa „%s“ nustojo reaguoti." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Programa „%s“ nustojo reaguoti." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paketas: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Atsiprašome, įvyko klaida diegiant programinę įrangą." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Programa „%s“ patyrė vidinę klaidą." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Programa %s netikėtai užsivėrė." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignoruoti šio tipo problemas ateityje" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Slėpti detales" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Naudojimas: %s <ataskaita> <paskirties katalogas>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Paskirties katalogas egzistuoja ir yra netuščias." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Naudotojo vardas:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Slaptažodis:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Renkama informacija apie problemą" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Renkama informacija apie problemą" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Surinkta informacija gali būti nusiųsta kūrėjams programai patobulinti. Tai " "gali užtrukti kelias minutes." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Išsiunčiama informacija apie klaidą" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Surinkti sistemos informaciją" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Reikalingas tapatumo nustatymas sistemos informacijai surinkti šiam " "pranešimui apie klaidą" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Sistemos pranešimai apie klaidą" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Įveskite slaptažodį, kad prieitumėte prie sistemos programų pranešimų apie " "klaidas" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Pranešti apie problemą..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Pranešti apie triktį kūrėjams" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Įdiegti papildomą paketą smėlio dėžėje (gali būti nurodyta daugelį kartų)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Jūsų sistema dabar gali tapti nestabili ir gali reikėti įkrauti OS iš naujo." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Nedėti naujų pėdsakų į ataskaitą, bet išvesti juos į standartinę išvestį." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Pradėti interaktyvų gdb seansą su ataskaitos „core dump“ (-o ignoruojamas; " "neperrašo ataskaitos)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Įrašyti modifikuotą ataskaitą į nurodytą failą, vietoje originalios " "ataskaitos keitimo" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Pašalinti „core dump“ iš ataskaitos po dėklo pėdsakų atkūrimo." #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Nustelbti ataskaitos CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Nustelbti ataskaitos ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Nustelbti ataskaitos ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Perdaryti ataskaitos paketų informaciją" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Sukurti laikiną smėlio dėžę ir atsiųsti/įdiegti ten reikalingus paketus ir " "derinimo simbolius; be šios parinkties yra manoma, kad reikalingi paketai ir " "derinimo simboliai jau yra įdiegti sistemoje. Argumentas rodo į paketų " "sistemos konfigūracijos bazinį katalogą; jei nurodysite „system“, bus " "naudojami sistemos konfigūravimo failai, bet tada galėsite tik atsekti " "strigtis, kurios įvyko dabar vykdomoje laidoje." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Raportuoti atsiuntimo/įdiegimo eigą kai įdiegiami paketai į smėlio dėžę" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Prie žurnalo pranešimų pridėti laiko žymes" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Podėlio katalogas paketams atsiųstiems smėlio dėžėje" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Katalogas išpakuotiems paketams. Vėlesni paleidimai tars, kad bet kuris jau " "atsiųstas paketas yra išpakuotas šioje smėlio dėžėje." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Kelias iki failo su strigčių duomenų bazės atpažinimo informacija. Tai " "naudojama, kai nurodomas strigties ID atsektiems dėklo pėdsakams išsiųsti " "(tik, jei nenurodyti -g, -o, ar -s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Rodyti atsektus dėklo pėdsakus ir klausti patvirtinimo prieš siunčiant juos " "į strigčių duomenų bazę." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Kelias į dublikatų sqlite duomenų bazę (numatyta r.: netikrinti dublikatų)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Negalite naudoti -C be -S. Stabdoma." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Ar siųsti šiuos priedus? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Atrodo šis paketas įdiegtas neteisingai" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Tai nėra oficialus %s paketas. Prašome pašalinti bet kokius trečiųjų šalių " "paketus ir pabandyti dar kartą." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Jūs turite keletą pasenusių paketo versijų. Prašome atnaujinti šiuos paketus " "ir patikrinti ar problema vis dar pasireiškia:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "nežinoma programa" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Atsiprašome, programa „%s“ netikėtai užsidarė" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s klaida" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Kompiuteris neturi pakankamai laisvos atminties, kad automatiškai " "išanalizuotų problemą ir išsiųstų ataskaitą kūrėjams." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Neteisinga ataskaita apie klaidą" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Jums neleidžiama prieiti prie ataskaitos apie problemą." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Klaida" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Nepakanka vietos diske šios ataskaitos apdorojimui." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nenurodytas paketas" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Jums reikia nurodyti paketą arba PID. Daugiau informacijos gausite su --help." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Neturite teisės" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Nurodytas procesas jums nepriklauso. Paleiskite programą kaip proceso " "valdytojas ar pagrindinis naudotojas." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Neteisingas PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Nurodytas proceso ID nepriklauso programai." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Simptomų scenarijus %s nenustatė paveikto paketo" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Paketas %s neegzistuoja" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Ataskaitos sukurti nepavyko" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Atnaujinama problemos ataskaita" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Jūs nesate šio pranešimo apie klaidą pranešėjas ar pasekėjas, arba " "pranešimas yra dublikatas ar jau užvertas.\n" "\n" "Prašome sukurti naują pranešimą naudojant „apport-bug“." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Jūs nesate šio pranešimo apie klaidą autorius. Yra daug lengviau pažymėti " "pranešimą apie klaidą kaip kito dublikatą, nei perkelti jūsų komentarus ir " "priedus į naują pranešimą apie klaidą.\n" "\n" "Todėl mes rekomenduojame, kad jūs praneštumėte apie klaidą naudodami „apport-" "bug“ ir pakomentuotumėte šiame pranešime apie klaidą apie jūsų pranešimą.\n" "\n" "Ar tikrai norite tęsti?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Jokios papildomos informacijos nesurinkta." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Apie kokią problemų rūšį norite pranešti?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Nežinomas simptomas" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Simptomas „%s“ yra nežinomas." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Kai uždarysite šį pranešimą, paspauskite ant programos lango, kad " "praneštumėte apie tai." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop nepavyko nustatyti lango proceso ID" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <pranešimo numeris>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Nurodykite paketo pavadinimą." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Prie ataskaitos pridėti papildomą žymę. Gali būti nurodyta kelis kartus." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [parametrai] [simptomas|pid|paketas|programos kelias|.apport/.crash " "failas]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Paleisti pranešimo apie klaidą režime. Reikia --package ir nebūtino --pid, " "arba tik --pid. Jei nė vienas neduotas, parodyti žinomų simptomų sąrašą. " "(Turima omeny, jei duotas tik vienas argumentas.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Pranešti apie problemą, paspauskite ant lango." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Pradėti klaidos atnaujinimo režime. Gali prireikti nebūtino --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Registruoti pranešimą apie simptomą. (Turima omeny, jei simptomo vardas " "duotas kaip vienintelis argumentas.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Nurodyti paketo vardą --file-bug režime. Tai neprivaloma, jei nurodytas --" "pid. (Turima omeny, jei paketo vardas duotas kaip vienintelis argumentas.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "nurodyti vykdomą programą --file-bug veiksenoje. Jei tai nurodyta, " "pranešimas apie klaidą turės daugiau informacijos. (Numanoma, jei pateiktas " "„pid“ kaip vienintelis argumentas.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Pateiktas pid yra užstrigusi programa." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Pranešti apie strigtį iš duoto apport ar .crash failo, o ne iš laukiančių " "%s. (Turima omeny, jei failas duotas kaip vienintelis argumentas.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Pranešimo apie klaidą veiksenoje išsaugoti surinktą informaciją į failą " "vietoje perdavimo. Šis failas gali būti perduotas vėliau iš kito kompiuterio." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Atspausdinti Apport versijos numerį." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Tai terminalo lange paleis „apport-retrace“ ir bus galima išanalizuoti lūžį." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Vykdyti gdb sesiją" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Vykdyti gdb sesiją, neparsiunčiant derinimo simbolių" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Atnaujinti %s su visiškai simboliniu dėklo pėdsaku" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Ši ataskaita apie problemą yra programos, kuri jau nėra įdiegta." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "Problema įvyko su programa %s, kuri pasikeitė nuo strigties įvykio." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Ši ataskaita apie klaidą yra pažeista ir negali būti apdorota." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Ataskaita priklauso neįdiegtam paketui" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Įvyko klaida mėginant apdoroti šį pranešimą apie klaidą:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Nepavyko nustatyti paketo ar pirminio paketo vardo." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Nepavyko paleisti žiniatinklio naršyklės" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Nepavyko paleisti žiniatinklio naršyklės %s atverti." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Prašome įvesti savo paskyros informaciją %s klaidų sekimo sistemoje" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Tinklo problema" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Nepavyko prisijungti prie strigčių duomenų bazės, patikrinkite interneto " "ryšį." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Atminties išnaudojimas" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Jūsų sistema neturi pakankamai atminties ataskaitai apie strigtį apdoroti." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Apie problemą negali būti pranešta:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problema jau žinoma" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Jau buvo pranešta apie šią problemą pranešimo apie klaidą ataskaitoje " "rodomoje žiniatinklio naršyklėje. Patikrinkite ar galite pridėti daugiau " "informacijos, kuri galėtų būti naudinga kūrėjams." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Apie šią problemą jau buvo pranešta kūrėjams. Ačiū!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Tęsimo apdorojimas užstrigo prie pat pabaigos ir atrodė, kad buvo atliktas " "normaliai." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Spauskite bet kurį klavišą tęsimui..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Ką norite atlikti? Jūsų parinktys yra:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Prašome pasirinkti (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i baitų)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Kai ataskaita apie problemą bus nusiųsta, prašome užpildyti formą\n" "automatiškai atvertoje žiniatinklio naršyklėje." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Siųsti ataskaitą (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Ištirti vietoje" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Peržiūrėti ataskaitą" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "Lai&kyti ataskaitos failą vėlesniam siuntimui ar kopijavimui kur nors kitur" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Atsisakyti ir &ignoruoti šios programos strigtis ateityje" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Atsisakyti" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Ataskaitos apie problemą failas:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "Pa&tvirtinti" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Klaida: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Surinkta informacija gali būti nusiųsta kūrėjams, kad jie patobulintų\n" "programą. Tai gali užtrukti kelias minutes." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Surinkta informacija yra siunčiama į klaidų sekimo sistemą.\n" "Tai gali užtrukti kelias minutes." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Baigta" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "nėra" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Pasirinkta: %s. Daugybinis pasirinkimas:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Pasirinkimai:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Kelias iki failo (Enter - atsisakyti):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Failas neegzistuoja." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Tai katalogas." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Norėdami tęsti privalote aplankyti šį URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Galite paleisti naršyklę dabar arba nukopijuoti šį URL į naršyklę kitame " "kompiuteryje." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Paleisti naršyklę dabar" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nėra laukiančiųjų strigčių ataskaitų. Mėginkite --help daugiau informacijos " "gauti." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Tai ne autentiškas %s paketas" #~ msgid "&Report Problem..." #~ msgstr "&Pranešti apie problemą..." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Sistema susidūrė su rimta branduolio problema." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Siųsti visą ataskaitą (rekomenduojama; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Siųsti su&mažintą ataskaitą (lėtas interneto ryšys; %s)" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Deja, paketas „%s“ nebuvo įrašytas ar " #~ "atnaujintas.</span>" #~ msgid "Content of the report" #~ msgstr "Ataskaitos turinys" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Visa ataskaita (rekomenduojama; %s)" #~ msgid "Application problem" #~ msgstr "Programos problema" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Sumažinta ataskaita (lėtas interneto ryšys; %s)" #~ msgid "Restart _Program" #~ msgstr "Paleisti _programą iš naujo" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignoruoti šios programos versijos strigtis ateityje" #~ msgid "_Report Problem..." #~ msgstr "P_ranešti apie problemą..." #~ msgid "Package problem" #~ msgstr "Paketo problema" #~ msgid "Kernel problem" #~ msgstr "Branduolio problema" #~ msgid "_Send Report" #~ msgstr "_Siųsti ataskaitą" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Jei nedarėte nieko konfidencialaus (slaptažodžių įvedimas ar kita\n" #~ "asmeninė informacija), galite padėti pagerinti programą pranešdami\n" #~ "apie problemą." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s netikėtai užsidarė %s %s." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Nepavyko įdiegti ar atnaujinti paketo „%s“." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Jūs galite padėti kūrėjams pataisyti paketą pranešdami apie problemą." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Jūs galite padėti kūrėjams pataisyti problemą apie ją pranešdami." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "Tai įvyko ankstesnio pristabdymo metu ir sutrukdė tinkamai tęsti." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "Tai įvyko ankstesnio užmigdymo metu ir sutrukdė tinkamai tęsti." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Jei nedarėte nieko konfidencialaus (slaptažodžių įvedimas ar asmeninė " #~ "informacija), galite padėti patobulinti programą pranešdami apie problemą." #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Ar išsiųsti pranešimą apie problemą kūrėjams?</b></big>\n" #~ "\n" #~ "Kai pranešimas apie problemą bus išsiųstas, užpildykite formą automatiškai " #~ "atvertoje žiniatinklio naršyklėje." #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Tai pašalins kelias dideles dalis iš ataskaitos. Jos yra labai naudingos " #~ "kūrėjams problemos derinimui, bet gali būti per didelės išsiuntimui, jei " #~ "turite lėtą interneto ryšį." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [parametrai] <apport problemos ataskaita | strigties ID>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "jums arba reikia naudoti vietinę operaciją (-s, -g, -o) arba pateikti " #~ "atpažinimo failą (--auth); žiūrėkite --help trumpai pagalbai" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "neteisingas argumentų skaičius; naudokite --help trumpai pagalbai" #~ msgid "Send this data to the developers?" #~ msgstr "Siųsti šiuos duomenis kūrėjams?" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Atsiprašome, nepavyko įdiegti ar atnaujinti paketo „%s“" #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Atsiprašome, %s netikėtai užvertas" #~ msgid "Generic error" #~ msgstr "Bendroji klaida" #~ msgid "Restart &Program" #~ msgstr "Paleisti &programą iš naujo" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Atsiprašome, %s netikėtai užvertas." #~ msgid "&Send" #~ msgstr "&Siųsti" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Atsiprašome, programa „%s“ netikėtai užsivėrė." #~ msgid "&Ignore future crashes of this program version" #~ msgstr "Šios programos versijos, lūžius ateityje &ignoruoti" #~ msgid "&Details..." #~ msgstr "&Detalės..." #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Kai pranešimas apie klaidą bus išsiųstas, prašome užpildyti formą " #~ "automatiškai atvertoje žiniatinklio naršyklėje." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Atsiprašome, programa %s netikėtai užsivėrė." ����������������������������������������������������������������������������apport-2.20.11/po/lv.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000107200�14416106601�011450� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Latvian translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Latvian <lv@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: lv\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Atcelt" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Labi" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Ziņojums par avāriju" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Atvainojiet, notikusi iekšējā kļūda.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Ja jūs pamanāt tālākas problēmas, mēģiniet pārstartēt datoru." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Sūtīt kļūdu ziņojumu, lai palīdzētu atrisināt šo problēmu" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorēt tālākas problēmas ar šo programmas versiju" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Rādīt detaļas" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Eksaminēt lokāli" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Atstāt aizvērtu" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Turpināt" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Atvainojiet, lietotne %s negaidīti pārstāja strādāt." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Atvainojiet, %s aizvērās negaidīti." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Atvainojiet, %s gadījās iekšēja kļūda." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Sūtīt" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Aizvērt piespiedu kārtā" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Palaist vēlreiz" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Lietotne %s pārstāja atbildēt." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Programma \"%s\" pārstāja atbildēt." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakotne: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Atvainojiet, problēma notika instalējot programmatūru." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Lietotnei %s gadījās iekšējā kļūda" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Lietotne %s aizvērās negaidīti." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorēt šāda veida tālākas problēmas" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Slēpt detaļas" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Savākt informāciju par sistēmu" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Autentifikācija ir nepieciešama, lai savāktu informāciju par sistēmu šim " "problēmu ziņojumam" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Sistēmas problēmu ziņojumi" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Lūdzu, ievadiet savu paroli, lai piekļūtu sistēmas programmu " "problēmziņojumiem" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Skatiet rokasgrāmatu “man”, lai uzzinātu vairāk" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "norādiet žurnāla datnes nosaukumu, ko veidojis valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "atkārtoti izmantot iepriekš izveidoto smilšu kastes direktoriju (SDIR) vai " "tādu izveidot, ja tāda neeksistē" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "neveidot vai atkārtoti izmanto smilšu kastes direktoriju papildu " "atkļūdošanas simboliem, bet paļauties tikai uz instalētajiem atkļūdošanas " "simboliem." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "atkārtoti izmantot iepriekš izveidoto kešatmiņas direktoriju (CDIR) vai tādu " "izveidot, ja tāda neeksistē" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "ziņot lejupielādes/instalēšanas progresu, kad pakotnes instalē smilšu kastē" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "izpildāmā datne, kas ir palaista ar valgrind memcheck rīku, atmiņas noplūdes " "atklāšanai" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Kļūda — %s nav izpildāms. Aptur." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Pievienot laika zīmogus žurnāla ierakstiem" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Izveidot un izmantot trešās puses krātuves no vietām, kas ir norādītas " "pārskatos" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Direktorija neatpakotajām pakotnēm. Nākotnē programma uzskatīs ka jebkura " "lejupielādētā pakotne ir arī atarhivēta šeit." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Nevar izmantot -C bez -S. Aptur." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Šī pakotne šķiet instalēta nekorekti" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Šī nav oficiāla %s pakotne. Lūdzu, noņemiet jebkuras trešās puses pakotnes " "un mēģiniet vēlreiz." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Dažas no Jūsu uzstādītajām pakotņu versijām ir novecojušas. Lūdzu, " "uzlabojiet novecojušās pakotnes un pārbaudiet, vai problēma vēl paliek:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Piedod, bet programma „%s“ negaidīti beidza darboties" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problēma ar %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Jūsu datoram trūkst brīvas atmiņas, lai veiktu automātisku problēmas analīzi " "un nosūtītu ziņojumu izstrādātājiem." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Jums nav atļauts piekļūt kļūdas ziņojumam." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Nepietiek brīvas diska vietas, lai apstrādātu šo ziņojumu." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Jums nepieder norādītais process. Lūdzu, palaidiet šo programmu kā procesa " "īpašnieks vai kā root lietotājs." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Norādītais procesa identifikators (pid) ir \"uzkārusies\" lietotne" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Tas palaidīs apport-retrace termināļa logā, lai sīkāk izpētītu avāriju." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Palaist gdb sesiju" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Palaist gdb sesiju bez atkļūdošanas simbolu lejupielādes" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Atjaunināt %s ar pilnīgu simbolisko izsekošanas pavedienu" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "Problēma notika ar programmu %s, kura ir mainījusies kopš avārijas." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Problēmas ziņojums ir bojāts un to nevar apstrādāt." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Notika kļūda apstrādājot šo problēmu ziņojumu:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Šī problēma jau ir ziņota izstrādātājiem. Paldies!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Tas gadījās iepriekšējā iesnaudināšanas reizē un tas neļāva sistēmai normāli " "atsākt darbu." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Tas gadījās iepriekšējā iemidzināšanas reizē un tas neļāva sistēmai normāli " "atsākt darbu." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Eksaminēt lokāli" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Atvainojiet, lietotne %s aizvērās negaidīti." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Šī sistēma varētu palikt nestabila un, iespējams, to vajadzētu pārstartēt." ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/mhr.po����������������������������������������������������������������������������0000664�0000000�0000000�00000077435�14416106601�011635� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Mari (Meadow) translation for apport # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2013. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2013-12-10 08:33+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Mari (Meadow) <mhr@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/mk.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077430�14416106601�011451� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Macedonian translation for apport # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2007. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Macedonian <mk@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: mk\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ml.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077426�14416106601�011457� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Malayalam translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Malayalam <ml@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ml\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/mr.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000132055�14416106601�011453� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Marathi translation for apport # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2013. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2013-04-08 10:39+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Marathi <mr@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: mr\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "एप्पोर्ट" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "रद्द करा" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "ठीक आहे" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "क्रॅश अहवाल" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>क्षमस्व, एक अंतर्गत त्रुटी आली.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "आपणास अजून समस्या आल्यास, संगणक रीस्टार्ट करून पहा." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "या समस्येचे निराकरण करण्यात मदत करण्यासाठी एक त्रुटी अहवाल पाठवू" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "या कार्यक्रमाच्या या आवृत्तीच्या भविष्यातील समस्यांकडे दुर्लक्ष करा" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "तपशील दर्शवा" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "स्थानीयरित्या तपासा (_E)" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "बंद ठेवा" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "पुढे चला" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>समस्या माहिती गोळा करत आहे</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "विकासकांना आपण अहवाल दिलेल्या समस्येचे निराकरण करण्यात मदत करू शकणारी माहिती " "गोळा केला जात आहे." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "समस्या माहिती अपलोड होत आहे" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>समस्या माहिती अपलोड चालू आहे</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "गोळा माहिती बग ट्रॅकिंग प्रणालीमध्ये पाठवला जात आहे. यास काही मिनिटे लागू " "शकतील." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(बायनरी डेटा)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "क्षमस्व, %s अंतर्गत त्रुटी आली आहे." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "विकसकांसाठी समस्या अहवाल पाठवा?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "पाठवा" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "बळपूर्वक बंद केले" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "पुन्हा प्रक्षेपण करा" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "पेकेज : %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "क्षमस्व, सॉफ्टवेअर स्थापित करताना एक समस्या आली." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "अनुप्रयोग %s अंतर्गत त्रुटी आली आहे." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "अनुप्रयोग %s अनपेक्षितपणे बंद झाला आहे." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "या प्रकारच्या समस्येकडे दुर्लक्ष करा" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "तपशील लपवा" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "वापर : %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "गंतव्य निर्देशिका विद्यमान आहे आणि रिक्त नाही." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "वापरकर्ता नाव :" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "गुप्तशब्द :" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "समस्या माहिती गोळा करत आहे" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "समस्या माहिती गोळा करत आहे" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "गोळा माहिती अनुप्रयोग सुधारण्यासाठी विकसकांसाठी पाठविले जाऊ शकते. यास काही " "मिनिटे लागू शकतील." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "समस्या माहिती अपलोड करत आहे" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "प्रणाली माहिती गोळा करा" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "प्रणाली समस्या अहवाल" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "समस्या अहवाल सादर करा..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "अधिक माहितीसाठी man पान पहा." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "वॅलग्रींड निर्मीत लॉग फाइल नाव निर्देशीत करा" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "या संलग्नक म्हणून पाठवण्यासाठी ओके? [हो / नाही]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "हे संकुल योग्य प्रकारे स्थापित केलेले दिसत नाही" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "हा अधिकृत %s पॅकेज नाही. कृपया कोणत्याही तृतीय पक्ष पॅकेज काढून आणि पुन्हा " "प्रयत्न करा." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "आपणाकडे काही अप्रचलित पॅकेज आवृत्त्या स्थापित आहेत. समस्या अजूनही झाल्यास " "खालील संकुले अद्ययावत करा व तपासा:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "अपरिचीत कार्यक्रम" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "क्षमस्व, कार्यक्रम \"%s\" अनपेक्षितपणे बंद पडला" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s यात समस्या" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "आपल्या संगणकावर आपोआप समस्या विश्लेषण आणि विकसकांसाठी एक अहवाल पाठवण्यासाठी " "अतिरीक्त मोकळी जागा नाही." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "अवैध समस्या अहवाल" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "आपण हा समस्या अहवाल प्रवेश करण्याची परवानगी नाही." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "त्रुटी" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "या अहवालावर प्रक्रिया करण्यासाठी पुरेशी जागा उपलब्ध नाही." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "पॅकेज निर्दिष्ट केले नाही" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "तुम्ही पॅकेज किंवा पी आय डी निर्देशीत करणे आवश्यक आहे. अधिक माहितीसाठी --" "help पहा." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "परवानगी नाही" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "निर्दिष्ट प्रक्रिया आपणाशी संबंधित नाही. या कार्यक्रमात प्रक्रिया मालक " "म्हणून किंवा रूट म्हणून चालवा." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "अवैध पीआयडी" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "निर्दिष्ट कार्यपध्दती ID एक कार्यक्रम संबंधित नाही." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "लक्षण स्क्रिप्ट %s ने प्रभावित पॅकेज निश्चित केले नाही" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "पेकेज %s अस्तित्वात नाही" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "अहवाल निर्माण करू शकत नाही" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "समस्या अहवाल अद्ययावत करत आहे" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "आपण ही समस्या अहवाल रिपोर्टर किंवा सदस्य नाही आहात, किंवा अहवाल डुप्लिकेट " "किंवा आधीच बंद केले आहे.\n" "\n" "\"apport-bug\" वापर करून नवीन अहवाल तयार करा." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "आपण ही समस्या अहवाल रिपोर्टर नाहीत. नवीन बग आपल्या टिप्पण्या आणि संलग्नक " "पुढे यापेक्षा आणखी एक डुप्लिकेट म्हणून बग चिन्हांकित करण्यासाठी खूप सोपे " "आहे.\n" "\n" "त्यानंतर, आम्ही तुम्हाला \"apport-bug\" वापरून नवीन बग अहवाल आणि दाखल एक " "बद्दल हे बग एक टिप्पणी करा, असे शिफारसीय करतो.\n" "\n" "आपण खरोखर पुढे जायचे?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "अधिक माहिती गोळा केली नाही." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "आपण काय प्रकारची समस्या तक्रार नोंदवू इच्छित आहात?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "अपरिचीत लक्षण" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "लक्षण \"%s\" ज्ञात नाही." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "हा संदेश बंद केल्यानंतर त्याबद्दल एक समस्या कळवण्याची खिडकी वर क्लिक करा." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop विंडो प्रक्रिया आयडी निर्धारित करण्यासाठी अयशस्वी झाले" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "पॅकेज नाव निर्देशित करा." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "अहवाल एक अतिरिक्त टॅग जोडा. अनेक वेळा निर्देशीत करणे शक्य आहे." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "बग दाखल मोडमध्ये सुरू करा. --package आणि एक पर्यायी --pid, किंवा फक्त एक --" "pid आवश्यक आहे. नाही दिली तर ओळखले लक्षणे यादी प्रदर्शित केली जाईल. (एकच " "आर्ग्युमेण्ट दिले असेल तर.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "एक समस्या अहवालासाठी लक्ष्य विंडो क्लिक करा." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "बग अद्ययावत करणे मोडमध्ये सुरू. एक पर्यायी --package घेऊ शकता." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "एक लक्षणाबद्दल बग अहवाल. (जर लक्षण नाव एकमेव वितर्क म्हणून दिले जाते तर.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "--file-bug mode मध्ये पॅकेज नाव निर्देशीत करा. एक --pid निर्दिष्ट केले नसेल " "तर हे ऐच्छिक आहे. (जर संकुल नाव एकमेव वितर्क म्हणून दिले तर.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "--file-bug मोड मध्ये एक रनिंग कार्यक्रम निर्देशीत करा. हे निर्देशीत केल्यास, " "बग अहवाल अधिक माहिती असेल. (जर पी आय डी एकमेव वितर्क म्हणून दिले तर.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "प्रदान PID एक अडकलेला अनुप्रयोग आहे." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "%s प्रलंबित विषयाऐवजी दिलेले .apport किंवा .crash फाइल पासून क्रॅश अहवाल " "द्या. (फाइल एकमेव वितर्क म्हणून दिले गेले असेल तर.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Apport आवृत्ती क्रमांक छापा." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "gdb सेशन चालवा" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "डिबग चिन्हे डाउनलोड न करता gdb सेशन चालवा" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "पूर्णपणे प्रतिकात्मक स्टॅक ट्रेसने %s अद्ययावत करा" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "हा समस्या अहवाल जो आता स्थापित नाही अशा एक कार्यक्रमाला लागू होतो." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "अहवाल स्थापित केले नसलेल्या संकुलाचा आहे." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "ही समस्या रिपोर्ट करण्याचा प्रयत्न करताना एक त्रुटी आली:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "संकुल उगम किंवा संकुल नाव निश्चित करू शकत नाही." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "वेब ब्राउजर सुरु करू शकत नाही" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "%s उघडण्याकरिता वेब ब्राउजर सुरु करू शकत नाही." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "%s बग ट्रॅकिंग सिस्टमच्या आपल्या खात्याची माहिती प्रविष्ट करा" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "संजाळ समस्या" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "क्रॅश माहितीकोशाला जोडू शकत नाही, आपले इंटरनेट कनेक्शन तपासा." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "स्मृती अपुरी पडली" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "आपल्या प्रणालीमध्ये हा क्रॅश अहवाल प्रक्रिया करण्यासाठी पुरेशी स्मृती नाही." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "समस्या नोंद करू शकत नाही:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "समस्या अगोदरच माहित आहे" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "ही समस्या आधीच विकसकांकडे आलेली आहे. धन्यवाद!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "पुढे जाण्यास कोणतीही कळ दाबा..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "तुम्हाला काय करायला आवडेल? पर्याय याप्रमाणे आहेत:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "कृपया निवडा (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i बाइट्स)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "बग अहवाल पाठवा (&S) (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "स्थानीयरित्या तपासा (&E)" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "अहवाल बघा (&V)" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "नंतर किंवा दुसरीकडे कुठेतरी पाठवून कॉपी अहवाल फाईल ठेवा(_K)" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "रद्द करा आणि या कार्यक्रमाच्या या आवृत्तीचे भविष्यातील क्रॅशकडे दुर्लक्ष करा" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "रद्द करा (&C)" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "समस्या अहवाल फाईल :" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "खात्री करा (&C)" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "त्रुटी : %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "झाले (&D)" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "काही नाही" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "निवडलेले : %s. अनेक पर्याय :" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "पर्याय :" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "फाईलचा पथ (रद्द करण्यासाठी प्रविष्ट करा):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "फाईल अस्तित्वात नाही." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "हि संचयीका आहे." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "सुरू ठेवण्यासाठी, आपण खालील URL ला भेट देणे आवश्यक आहे:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "ब्राऊजर दाखल करा" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ms.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000127364�14416106601�011463� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Malay translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Malay <ms@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ms\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Batal" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Laporan kerosakan" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Maaf, ralat dalaman berlaku.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Jika anda mengalami masalah, cuba mulakan semula komputer." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Hantar laporan ralat untuk bantu membaiki masalah ini" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Abai masalah versi program ini dimasa hadapan" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Papar Perincian" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Periksa secara setempat" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Tinggalkan Tertutup" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Teruskan" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Mengutip maklumat masalah</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Maklumat yang dikutip mungkin membantu para pembangun membaiki masalah yang " "anda laporkan." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Memuat naik maklumat masalah" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Memuat naik maklumat masalah</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Maklumat yang dikutip akan dihantat ke sistem penjejakan pepijat. Ia " "mengambil masa beberapa minit." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Fail rosak Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(data binari)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Maaf, aplikasi %s telah dihentikan tanpa dijangka." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Maaf, %s telah ditutup tanpa dijangka." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Maaf, %s telah mengalami ralat dalaman." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Hantar laporan masalah kepada pembangun?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Hantar" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Paksa Tutup" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Lancarkan Semula" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Aplikasi %s telah berhenti membalas." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Aplikasi \"%s\" telah berhenti membalas." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakej: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Maaf, masalah berlaku semasa memasang perisian." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Aplikasi %s telah mengalami ralat dalaman" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Aplikasi %s telah ditutup tanpa dijangka." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Abai masalah masa hadapan bagi jenis ini" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Sembunyi Perincian" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Penggunaan: %s <laporan> <direktori sasaran>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Destinasi direktori wujud dan berisi." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nama Pengguna:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Kata Laluan:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Mengumpul Maklumat Masalah" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Mengumpul maklumat masalah" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Maklumat yang dikumpul boleh dihantar ke pembangun untuk pertingkatkan " "kualiti aplikasi. Ia mengambil masa beberapa minit." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Memuat Naik Maklumat Masalah" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Kutip maklumat sistem" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Pengesahihan diperlukan untuk mengutip maklumat sistem bagi laporan masalah " "ini" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Laporan masalah sistem" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Sila masukkan kata laluan anda untuk mencapai laporan masalah bagi program " "sistem" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Lapor masalah..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Laporkan kerosakan kepada pembangun" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Rujuk laman panduan untuk perincian." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "nyatakan nama fail log yang dihasilkan oleh valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "guna semula dir kotak pasir (SDIR) yang digunakan sebelum ini atau, jika ia " "tidak wujud, cipta baru" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "jangan cipta atau guna semula direktori kotak pasir untuk simbol nyahpepijat " "tambahan tetapi hanya bergantung pada simbol nyahpepijat yang dipasang." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "guna semula dir cache (CDIR) yang dicipta sebelum ini, jika tidak wujud, " "cipta baru" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "lapor kemajuan muat turun/pasang bila memasang pakej ke dalam kotak pasir" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "boleh laku yang berjalan dibawah alat semakan ingatan valgrind untuk " "pengesanan kebocoran ingatan" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Pasang pakej tambahan kedalam kekotak pasir (boleh ditentukan berbilang kali)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Ralar: %s bukanlah boleh laku. Menghentikan." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Sistem anda akan menjadi tidak stabil sekarang dan mungkin perlu dimulakan " "semula." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Jangan letakkan surihan baru kedalam laporan, tetapi tuliskannya ke stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Mulakan sesi gdb berinteraktif dengan laporan longgokan teras (-o abaikan; " "tidak menulis semula laporan)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Tulis laporan yang diubahsuai pada fail yang diberikan selain dari mengubah " "laporan asal" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Buang longgokan teras dari laporan selepas penjanaan semula surihan tindanan" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Batalkan laporan CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Batalkan laporan ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Batalkan laporan ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Bina semula laporan maklumat pakej" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Bina kekotak pasir sementara dan muat turun/pasang pakej yang perlu dan " "nyahpepijat simbol disini; tanpa pilihan ini ia anggap pakej dan simbol " "nyahpepijat yang diperlukan sudah dipasang didalam sistem. Argumen merujuk " "kepada direktori dasar konfigurasi sistem pakej; jika anda tentukan " "\"sistem\", ia akan gunakan fail kkonfigurasi sistem, tetapi hanya boleh " "menyurih semula kerosakan yang disebabkan keluaran yang dijalankan semasa " "ini." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Lapor kemajuan muat turun/pasang bilang memasang pakej kedalam kekotak pasir" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Tokok setem masa untuk log mesej, bagi operasi kelompok" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Cipta dan guna repositori pihak-ketiga dari asal yang dinyatakan dalam " "laporan" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Direktori cache untuk pakej yang dimuat turun didakam kekotak pasir" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Direktori untuk pakej tidak padat. Bila dijalankan dimasa hadapan akan " "menganggap mana-mana pakej yang sudah dimuat turun juga diekstrak kedalam " "kotak pasir ini." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Laluan fail dengan maklumat pengesahihan pengkalan data kerosakan. Ia " "digunakan bila menentukan ID kerosakan untuk muat naik jejak tindanan yang " "dijejakkan semula (hanya jika tidak -g, -o ataupun -s ditentukan)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Papar jejak tindanan yang dijejakkan semula dan tanya pengesahan sebelum " "menghantarnya ke pangkalan data kerosakan." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Laluan ke pangkalan data sqlite pendua (lalai: tiada pemeriksaan penduaan)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Anda tidak bleh guna -C tanpa -S. Dihentikan." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "OK untuk menghantar lampiran ini? [y/t]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Pakej ini tidak kelihatan dipasang dengan betul" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ini bukanlah pakej %s rasmi. Sila buang sebarang pakej pihak ketiga dan cuba " "lagi." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Anda mempunyai beberapa pakej versi lapuk yang sudah dipasang. SIla tatarkan " "pakej berikut dan semak jika masalah masih berlaku:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "program tidak diketahui" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Maaf, program \"%s\" terpaksa ditutup" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Masalah pada %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Komputer anda tidak mempunyai ingatan bebas yang mencukupi untuk " "menganalisis masalah dan hantar laporan ke pembangun secara automatik." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Laporan masalah tidak sah" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Anda tidak dibenarkan mencapai laporan masalah ini." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Ralat" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Ruang cakera tidak mencukupi untuk memproses laporan ini." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Tiada pakej ditentukan" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Anda perlu tentukan pakej atau PID. Rujuk --help untuk maklumat lanjut." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Keizinan dinafikan" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Proses tersebut bukan milik anda. Sila jalankan program sebagai pemilik " "proses atau root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID tidak sah" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "ID proses yang ditentukan tidak dimiliki oleh program tersebut." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Skrip simptom %s tidak menentukan pakej yang terjejas" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Pakej %s tidak wujud" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Tidak dapat mencipta laporan" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Mengemaskini laporan masalah" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Anda bukanlah pelapor atau pelanggan laporan masalah ini, atau laporan " "adalah pendua atau sudahpun ditutup.\n" "\n" "Sila cipta laporan baru menggunakan \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Anda bukanlah pelapor masalah ini. Adalah mudah tandakan pepijat sebagai " "pendua yang lain selain dari alihkan ulasan dan lampiran anda ke pepijat " "baru.\n" "\n" "Oleh itu, kami sarankan anda failkan laporan pepijat baru menggunakan " "\"apport-bug\" dan masukkan ulasan mengenai pepijat ini pada laporan yang " "anda failkan.\n" "\n" "Adakah anda ingin meneruskannya?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Tiada maklumat tambahan dikumpulkan." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Apakah jenis masalah yang anda ingin laporkan?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Simpton tidak diketahui" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Simptom \"%s\" tidak diketahui" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Selepas menutup mesej ini sila klik pada tetingkap aplikasi untuk melaporkan " "masalah tersebut." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop gagal memastikan ID proses tetingkap" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Nyatakan nama pakej." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Tambahkan tag tambahan kedalam laporan. Boleh dinyatakan beberapa kali." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Mulakan didalam mod pengisian pepijat. Perlukan --package dan pilihan --pid, " "atau hanya --pid. Jika tidak diberikan, paparkan senarai simptom yang " "diketahui. (Dilaksanakan jika argumen tunggal diberikan.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Klik pada tetingkap sebagai sasaran untuk failkan laporan masalah" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Mulakan dalam mod kemaskini pepijat. Boleh ambil pilihan --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Failkan laporan pepijat mengenai simptom. (Dilaksanakan jika nama simptom " "diberikan sebagai argumen sahaja.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Nyatakan nama pakej didalam mod --file-bug. Ini merupakan pilihan jika --pid " "ditentukan. (Dilaksanakan jika nama pakej diberikan sebagai argumen sahaja.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Nyatakan nama pakej didalam mod --file-bug. Ini merupakan pilihan jika --pid " "ditentukan. (Dilaksanakan jika nama pakej diberikan sebagai argumen sahaja.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "pid yang disediakan adalah aplikasi tergantung." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Laporkan kerosakan melalui fail .apport atau .crash yang diberikan selain " "dari yang ditangguh pada %s. (Dilaksanakan jika fail hanya diberikan sebagai " "argumen.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Didalam mod failkan pepijat, simpan maklumat yang dikutip kedalam fail " "selain dari melaporkannya. Fail ini kemudiannya boleh dilaporkan melalui " "mesin yang lain." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Papar nombor versi Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Ini akan lancarkan apport-retrace didalam tetingkap terminal untuk periksa " "kerosakan." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Jalankan sesi gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Jalankan sesi gdb tanpa memuat turun simbol nyahpepijat" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Kemaskini %s dengan jejak tindanan simbolik penuh" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Laporan masalah ini dilaksanakan kepada program yang mana ia tidak dipasang " "lagi." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Masalah berpunca dari program %s yang mana telah berubah semejak kerosakan " "berlaku." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Masalah laporan ini ialah sudah rosak dan tidak boleh diproses." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Laporan dari pakej yang belum dipasang." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Ralat berlaku semasa cuba memproses laporan masalah ini:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Tidak dapat mengenalpasti pakej atau nama sumber pakej." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Tidak boleh mulakan pelayar sesawang" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Tidak boleh mulakan pelayar sesawang untuk membuka %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Sila masukkan maklumat akaun anda untuk sistem penjejakan pepijat %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Masalah rangkaian" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Tidak dapat menyambung ke pengkalan data kerosakan, sila semak sambungan " "internet anda." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Kehabisan ingatan" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Sistem anda tidak mempunyai ingatan yang mencukupi untuk memproses laporan " "kerosakan ini." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Masalah tidak boleh dilaporkan:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Masalah sudah pun diketahui" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Masalah ini sudah pun dilaporkan didalam laporan pepijat yang telah " "dipaparkan didalam pelayar sesawang. Sila semak jika anda boleh menambah " "maklumat lanjutan lagi yang dikira boleh dianggap berguna untuk para " "pembangun." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Masalah ini sudah dilaporkan kepada pembangun. Terima kasih!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Ia berlaku ketika tangguh terdahulu, dan menghalang sistem menyambung semula " "dengan baik." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Ia berlaku ketika hibernasi terdahulu, dan menghalang sistem menyambung " "semula dengan baik." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Proses pemulihan kaku pada saat-saat akhir dan kelihatan selesai seperti " "biasa." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Tekan mana-mana kekunci untuk sambung" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Apakah yang anda ingin lakukan? Pilihan anda adalah:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Sila pilih (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bait)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Selepas laporan masalah dihantar, sila isikan borang didalam\n" "pelayar sesawang yang dibuka secara automatik." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Hantar laporan(%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Periksa secara setempat" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Lihat laporan" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Simpan dahulu fail laporan untuk dihantarkan kemudian atau salin ke tempat " "lain terlebih dahulu" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Batal dan &abaikan kerosakan dimasa hadapan untuk versi program ini" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Batal" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Fail laporan masalah:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Sahkan" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Ralat: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Maklumat yang dikutip boleh dihantat kepada pembangun untuk " "mempertingkatkan\n" "kualiti aplikasi. Ia mengimbil masa beberapa minit." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Maklumat yang dikutip telah dihantar ke sistem penjejakan pepijat.\n" "Ia mengambil masa beberapa minit." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Selesai" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "tiada" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Dipilih: %s. Berbilang pilihan:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Pilih:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Laluan ke fail (Enter untuk batal):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Fail tidak wujud." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Merupakan direktori." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Untuk teruskan, anda mesti lawati URL berikut:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Anda boleh lancarkan pelayar sekarang, atau salin URL ini kedalam pelayar " "pada komputer lain." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Lancarkan pelayar sekarang" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Tiada laporan kerosakan ditangguhkan. Cuba taip --help untuk maklumat lanjut." #~ msgid "Application problem" #~ msgstr "Masalah aplikasi" #~ msgid "_Send Report" #~ msgstr "_Kirim Laporan" #~ msgid "&Report Problem..." #~ msgstr "&Lapor Masalh..." #~ msgid "_Report Problem..." #~ msgstr "_Lapor Masalah..." #~ msgid "Kernel problem" #~ msgstr "Masalah kernel" #~ msgid "Content of the report" #~ msgstr "Kandungan laporan" #~ msgid "Package problem" #~ msgstr "Masalah pakej" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Ini bukanlah pakej %s yang tulen" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ini berlaku semasa tangguhan terdahulu dan elakkannya dari dipulih semula " #~ "dengan betul." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ini berlaku semasa hibernasi terdahulu dan elakkannya dari dipulih semula " #~ "dengan betul." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <laporan masalah apport | ID Kerosakan>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "Bilangan argumen tidak betul; guna --help untuk bantuan ringkas" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "Anda perlu lakukan operasi setempat (-s. -g, -o) atau bekalkan fail " #~ "pengesahihan (-auth); rujuk --help untuk bantuan ringkas" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Maaf, aplikasi %s telah ditutup tanpa dijangka." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Sistem anda mungkin menjadi tidak stabil sekarang dan perlu dimulakan semula." ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/my.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000120326�14416106601�011460� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Burmese translation for apport # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2012. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2012-09-04 12:14+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Burmese <my@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: my\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "ပယ်ဖျက်မည်" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "ကောင်းပြီ" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "လေယာဉ်ပျက်ကျအစီရင်ခံစာ" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>ဆောရီး၊ အတွင်းပိုင်းပြသာနာတက်နေပါသည်</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "နောက်ထပ်ပြသာနာများကိုတွေ့ရှိပါက " "သင်၏ကွန်ပြူတာကိုပိတ်ပြီးပြန်ဖွင့်ခြင်းဖြင့်ကြိုးစားကြည့်ပါ" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "ဤပြဿနာကိုဖြေရှင်းကူညီဆိုတဲ့ error အစီရင်ခံစာ Send" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "ဒီပရိုဂရမ်ဗားရှင်း၏အနာဂတ်ပြဿနာတွေ Ignore" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "အသေးစိတ်များကို ဖော်ပြပါ။" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "ပိတ်လိုက်မည်" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "ဆက်လုပ်" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>ပြဿနာအချက်အလက်များကိုစုဆောင်းနေပါသည်</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binary data)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "ဆောရီး application %s သည်ရုပ်တရက်ရပ်သွားသည်။" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "ဆောရီး %s သည်မမျှော်လင့်ပဲပိတ်သွားပါသည်" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "ဆောရီး, %s သည်အတွင်းပိုင်းပြသာနာတက်နေသည်။" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "developer ဆီသို့ပြသာနာများကို သတင်းပို့မည်" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "ပို့မည်။" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "အတင်းပိတ်မည်" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "ပြန်ဖွင့်မည်" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "ဒီ application %s တုံ့ပြန်ရပ်တန့်ခဲ့သည်။" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "အဆိုပါအစီအစဉ်ကို \"%s\" တုန့်ပြန်ရပ်တန့်ခဲ့သည်။" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Package: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "ဆောရီး၊ ဆော့ဝဲလ်သွင်းနေစဉ်ပြသာနာအနည်းငယ်ရှိသည်။" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "application %s သည်မမျှော်လင့်ပဲပိတ်သွားသည်" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "ဒီလိုအမျိုးအစားပြသာနာများကိုလစ်လျူရှုမည်" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "အချက်အလက်များကို ဖျောက်ထားမည်" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "အသုံးပြုသူအမည် −" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "စကားဝှက် −" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "ပြသာနာအချက်အလက်များကိုစုစည်းနေပါသည်" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "ပြသာနာအချက်အလက်များကိုစုစည်းနေပါသည်" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "ဒီ application ကောင်းမွန်စေရန်အတွက် စုဆောင်းရရှိသည့်အချက်အလက်များကို " "developer များထံသို့ပို့မည်။ မိနစ်အနည်းငယ်ကြာနိုင်ပါသည်။" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "authentication ဤပြဿနာကိုအစီရင်ခံစာသည် system " "သတင်းအချက်အလက်စုဆောင်းဖို့လိုအပ်သည်" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "System ကိုပြဿနာအစီရင်ခံစာများ" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "မိမိကွန်ပျူတာ၏စနစ်ကိုပြဿနာအစီရင်ခံစာများဝင်ရောက်ကြည့်ရှုရန်သင့် password " "ကိုရိုက်ထည့်ပေးပါ" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "ပြသာနာတစ်ခုကိုသတင်းပို့မည်" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "valgrind ကထုတ်လုပ်ဃဖိုင်အမည်ကိုသတ်မှတ်" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "တင်ပြမှုတွင်လမ်းကြောင်းသစ်များမထည့်ပါနှင့် သို့သော် stdout တွင်ရေးပါ" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "gdb အပြန်အလှန်ကဏ္ဍကို တင်ပြမှုရဲ့ ပင်မအစုဖြင့်စတင်ပါ (-o လျစ်လျှူရှု; " "တင်ပြမှုကိုပြန်လည်မရေးတော့ပါ)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "မူလတင်ပြချက်ကို ပြင်မည့်အစား အသစ်ပြင်ထားသောတင်ပြချက်ကိုရေး၍ပေးပါ" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "ခြေရာခံမှုထုတ်ပြန်ပြီးနောက် ပင်မပြဿနာအစုကို တင်ပြမှုမှဖယ်ထုတ်ပါ" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "တင်ပြမှုရဲ့ အဓိကဖိုင်ကို ပြင်ရေးပါ" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "တင်ပြမှုရဲ့ ခွင့်ပြုလမ်းကြောင်းကိုပြင်ရေးပါ" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "တင်ပြမှုရဲ့ ProcMaps ကိုပြင်ရေးပါ" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "တင်ပြမှုရဲ့ ပက်ကေ့ချ်အချက်အလက်ကို ပြန်တည်ဆောက်ပါ" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "ယာယီ ပေးပို့မှုတည်ဆောက်ပြီး လိုအပ်သော ပက်ကေ့ချ်များကို " "ဆွဲချခြင်းတပ်ဆင်ခြင်းနှင့် အပြစ်တွေ့ရှိမှုရဲ့သင်္ကေတရှိနေမည်။ " "ဤရွေးချယ်မှုမပါဝင်ပါကလိုအပ်သောပက်ကေ့ချ်များနှင့် " "အပြစ်တွေ့ရှိမှုရဲ့သင်္ကေတများရှိပြီးသားဟုမှတ်ယူမည်။ပက်ကေ့ချ်စနစ်ရဲ့ပြုပြင်ပြီ" "းသားအခြေခံလမ်းကြောင်းတွင်ရှိသော ထပ်ဖြည့်မှတ်များ၌ " "အကယ်၍သင့်အနေဖြင့်စနစ်ဟုသတ်မှတ်လျှင် ၎င်းတို့သည် " "စနစ်ရဲ့စီမံပြီးသားဖိုင်တွေကိုအသုံးပြုမည်။သို့သော် " "ပျက်စီးမှုလမ်းကြောင်းများကိုသာသိနိုင်ပြီးယခုလက်ရှိထွက်ရှိမှုတွင်သာအကြုံးဝင်သည" "်။" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "ဒီ package သည်ကောင်းမွန်စွာမသွင်းထားဘူးဟုထင်ရပါသည်" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "အမည်မသိပရိုဂရမ်" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "ဆောရီး၊ ပရိုဂရမ် \"%s\" သည်မမျှော်လင့်ပဲပိတ်သွားပါသည်" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s တွင်ပြသာနတက်နေပါသည်" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "ပြဿနာသတင်းပို့ချက်မမှန်ကန်ပါ" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "ချို့ယွင်းချက်" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "ခွင့်ပြုချက်ငြင်းပယ်ခြင်းခံရပါသည်" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID မမှန်ကန်ပါ" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Package %s သည်မတည်ရှိပါ" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "report မဖန်တီးနိုင်ပါ" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "ဘယ်လိုပြဿနာမျိုးကိုသတင်းပို့လိုပါသလား။" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Apport ဗားရှင်းနံပါတ်ကိုပရင့်ထုတ်မည်" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Web browser ကိုမဖွင့်နိုင်ပါ" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "နတ်ဝေါ့ပြသာနာ" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "ပြသာနာကိုသိရှိပြီးပါပြီ။" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "ဒီပြသာနာကို developer များသို့ပို့ပြီးပါပြီ။ ကျေးဇူးတင်ရှိပါသည်။" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "ဆက်လုပ်ရန်ကီးဘုတ်မှခလုတ်တစ်ခုခုကိုနှိပ်ပါ" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "သင်ဘာလုပ်လိုပါသလဲ။ သင်၏ရွေးချယ်မှု့များကတော့ -" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "ကျေးဇူးပြုပြီးရွေးပါ (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&S အစီရင်ခံစာကိုပို့မည် (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&V အစီရင်ခံစာကိုကြည့်မည်" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&C ပယ်ဖျက်မည်" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&C အတည်ပြုမည်" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "ချို့ယွင်းချက် - %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&D ပြီးပါပြီ" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ဘာမှမဟုတ်" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "ရွေးချယ်မှု့များ -" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "ဖိုင်မတည်ရှိပါ" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "ဆက်လက်သွားရန်အတွက် အောက်ပါ URL ကိုအလည်သွားမှရမည် -" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "browser တစ်ခုကိုဖွင့်မည်" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [ ရွေးချယ်ခွင့်များ]< ခွဲဝေမှု ပြဿနာတင်ပြချက် | ပျက်စီး ID>" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/nb.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000135103�14416106601�011431� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Norwegian Bokmål translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Norwegian Bokmål <nb@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Avbryt" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Krasjrapport" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Beklager, det oppsto en intern feil.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Prøv å starte datamaskinen på nytt hvis det oppstår flere problemer" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Send en feilrapport for å hjelpe til med å reparere dette problemet" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorer fremtidige problemer med denne programversjonen" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Vis detaljer" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Undersøk lokalt" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Forbli lukket" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Fortsett" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Samler inn informasjon om problemet</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Informasjon som kan hjelpe utviklerne med å reparere problemet du " "rapporterer samles inn." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Laster opp probleminformasjon" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Laster opp feilinformasjon</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Den innsamlede informasjonen sendes til feilsporingssystemet. Dette kan ta " "et par minutter." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport-krasjfil" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binære data)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Beklager. Programmet %s har fått en uventet stans." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Beklager. %s har lukket seg uventet." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Beklager, det har skjedd en intern feil med %s." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Send problemrapport til utviklerne?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Send" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Tving lukking" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Start på nytt" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Programmet %s svarer ikke." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Programmet \"%s\" svarer ikke." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakke: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Beklager. Et problem oppstod under installasjon av programvare." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Programmet %s har hatt en intern feil." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Programmet %s lukket seg uventet." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorer denne typen problemer i fremtiden" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Skjul detaljer" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Bruk: %s <rapport> <målmappe>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Målmappe finnes og er ikke tom." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Brukernavn:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Passord:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Samler informasjon om feil" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Samler probleminformasjon" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Den innsamlede informasjonen kan sendes til utviklerne for å forbedre " "programmet. Dette kan ta noen minutter." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Laster opp informasjon om feil" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Samle inn informasjon om systemet" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Du må autentisere deg for å samle inn systeminformasjon til denne " "feilrapporten" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Feilrapporter for system" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Skriv inn passordet ditt for å få tilgang til systemets feilrapporter" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Rapporter et problem" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Rapporter en feil til utviklerne" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Se programmets bruksanvisning («man»-side) for mer informasjon." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "spesifiser navn på loggfilen som produseres av valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "bruk en tidligere opprettet sandkassemappe (SDIR), eller opprett den hvis " "den ikke eksisterer" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "Bruk kun installerte feilsøkingssymboler, i stedet for å opprette eller " "bruke en eksisterende sandkassemappe for flere symboler." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "bruk en tidligere opprettet hurtiglagermappe (CDIR), eller opprett en hvis " "det ikke eksisterer" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "rapporter nedlastings- og installasjonsfremdrift når pakker installeres i " "sandkassa" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "den kjørbare fila som brukes under valgrinds memcheck-verktøy for å se etter " "minnelekkasje" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "Installer en ekstrapakke i sandkassa (kan spesifiseres flere ganger)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Feil: %s er ikke et kjørbart program. Stopper." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "Systemet ditt kan bli ustabilt nå, og kan måtte startes på nytt." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Legg ikke til flere meldinger i rapporten, skriv de heller til stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Start en interaktiv gdb-sesjon med rapportens kjernedump (-o ignoreres; " "skriver ikke rapporten på nytt)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Skriv den endrede rapporten til en gitt fil i stedet for å andre den " "opprinnelige rapporten" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Fjern kjerne-informasjon fra rapporten etter \"stack trace\" er opprettet på " "nytt" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Overstyr rapportens kjernefil" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Overstyr rapportens kjøresti" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Overstyr rapportens ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Gjennoppbygg pakkeinformasjonen i rapporten" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Bygg en midlertidig sandkasse, og last ned/installer nødvendige pakker og " "feilsøkingssymboler i den. Uten dette valget, antas de nødvendige pakkene og " "feilsøkingssymbolene å være installert i systemet allerede. Argumentet peker " "til pakkesystemets grunnmappe. Hvis du spesifiserer «system», blir systemets " "konfigurasjonsfiler brukt, men da vil du bare kunne spore en kræsj hvis den " "oppstod på utgivelsen som kjører nå." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Rapporter nedlastings- og installasjonsfremdrift når pakker blir installert " "i sandkassa." #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Sett tidsstempler i starten av logg-meldinger, for bunthåndtering" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "Lag og bruk tredjepartslager fra kilder som er valgt i rapporter" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Legg pakkenedlastinger for sandkassa i hurtiglageret" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Mappe for utpakkede pakker. Senere kjøringer vil basere seg på at nedlastede " "pakker også har blitt pakket ut til denne sandkassa." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Sti til en fil med autentifiseringsinformasjon for krasjdatabasen. Dette " "brukes til å spesifisere en krasj-ID når krasjrapporten lastes opp (kun hvis " "hverken -g, -o, eller -s spesifiseres)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Vis krasjrapporten og be om bekreftelse før den sendes til krasjdatabasen." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "Sti til kopien av sqlite-databasen. (Forvalgt: ikke se etter kopier)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Du kan ikke bruke -C uten -S. Stopper." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "OK å sende disse som vedlegg? [j/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Denne pakken ser ikke ut til å være korrekt installert" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Dette er ikke en offisiell %s-pakke. Fjern eventuelle tredjepartsprogrammer " "og prøv igjen." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Du har gamle pakkeversjoner installert. Oppgrader følgende pakker, og se om " "feilen fremdeles oppstår:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "ukjent program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Beklager, programmet \"%s\" ble uventet avsluttet" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problem i %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Datamaskinen din har ikke nok tilgjengelig minne for å kunne analysere og " "rapportere problemet automatisk." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Ugyldig problemrapport" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Du har ikke tilgang til denne feilrapporten." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Feil" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Det er ikke nok ledig diskplass til å behandle denne rapporten." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Ingen pakke er spesifisert" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Du må spesifisere en pakke eller PID: Se --hjelp for mer informasjon." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Adgang nektet" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Den valgte prosessen tilhører ikke deg. Kjør dette programmet som eieren av " "prosessen eller som root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Ugyldig prosess-id (PID)" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Den valgte prosess-IDen tilhører ikke noe program." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Symptomskript %s fant ingen berørte pakker" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Pakken %s finnes ikke" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Kan ikke lage rapport" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Oppdaterer problemrapport" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Du er ikke en rapportør eller abonnent på denne problemrapporten, eller " "rapporten er et duplikat eller allerede lukket.\n" "\n" "Vennligst lag en ny rapport ved å bruke «apport-bug»." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Du er ikke opprinnelig innmelder av denne problemrapporten. Det er enklere å " "merke en feil som et duplikat av en annen enn å flytte dine kommentarer og " "vedlegg til en ny feil.\n" "\n" "Vi vil også anbefale deg å rapportere en ny feil ved å bruke «apport-bug» og " "lage en kommentar i denne feilen om den du rapporterer.\n" "\n" "Ønsker du å fortsette?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Ingen tilleggsinformasjon har blitt samlet inn." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Hva slags problem vil du rapportere?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Ukjent symptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Symptomet \"%s\" er ukjent." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Vennligst klikk på et programvindu etter at du har lukket denne meldingen, " "slik at du kan sende en feilrapport om problemet." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "«xprop» fant ikke vinduets prosess-ID" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Angi pakkenavn." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Legg til et ekstra stikkord i rapporten. Kan nevnes flere ganger." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "%prog [valg] [symptom|pid|pakke|programsti|.apport/.crash-fil]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Start i feilrapporteringsmodus. Krever --package og en valgfri --pid, eller " "kun --pid. Hvis ingen av disse er gitt vises en liste over kjente symptomer. " "(Underforstått at ett argument blir gitt)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" "Klikk på det aktuelle vinduet for å sende en feilrapport om problemet." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Start i feiloppdateringmodus. Aksepterer en alternativ --pakke." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Send en feilmelding om et problem. (Underforstått hvis problemnavn er gitt " "som eneste argument)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Oppgi pakkenavn i --file-bug-modus. Dette er valgfritt hvis --pid er gitt. " "(Underforstått hvis pakkenavn er gitt som eneste argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Spesifiser et kjørende program i «--file-bug»-modus. Hvis dette er " "spesifisert, vil feilrapporten inneholde mer informasjon. (Dette er allerede " "implisert hvis «pid» oppgis som eneste argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Den oppgitte pid-en er en applikasjon som henger." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Rapporter kræsj fra en gitt .apport- eller .crash-fil i stedet for de " "gjeldende i %s. (Underforstått hvis en fil er gitt som eneste argument)." #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "I feilrapporteringsmodus kan du lagre den samlede feilinformasjonen i en fil " "i stedet for å rapportere den. Filen kan innrapporteres senere, for eksempel " "fra en annen maskin." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Skriv ut Apport-versjonsnummeret." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Dette vil starte apport-retrace i et terminalvindu for å undersøke krasjen." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Kjør gdb-økt" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Kjør gdb-økt uten å laste ned feilrapporteringssymboler" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Oppdater %s med symbolsk stabelsporing" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Denne problemrapporten gjelder et program som ikke lenger er installert." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Problemet skjedde med programmet %s, som har endret seg siden kræsjen " "oppstod." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Denne feilrapporten er skadet, og kan ikke behandles." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Rapporten tilhører en pakke som ikke er installert." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "En feil oppstod da denne feilrapporten skulle behandles:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Kunne ikke bestemme pakken eller kildepakkens navn." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Kunne ikke starte nettleser" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Kunne ikke starte nettleseren for å åpne %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Vennligst skriv inn kontoinformasjonen din for %s-feilsporingssystemet" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Nettverksfeil" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Kan ikke koble til krasjdatabasen, vennligst sjekk internettforbindelsen." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Minne fullt" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Systemet ditt har ikke nok minne til å behandle denne krasjrapporten." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Problemet kan ikke rapporteres:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problemet er allerede kjent" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Dette problemet er allerede rapportert i feilrapporten som vises i " "nettleseren. Hvis du har mer informasjon som kan hjelpe utviklerne å løse " "problemet, bør du legge det til i rapporten." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Dette problemet er allerede rapportert til utviklerne. Takk!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Dette oppstod mens maskinen stod i hvilemodus, og hindret systemet fra å " "våkne skikkelig." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Dette oppstod mens maskinen stod i dvalemodus, og hindret systemet fra å " "våkne skikkelig." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Gjenopptagelsen hang seg opp nær slutten og det vil synes som om denne " "fullførte normalt." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Trykk en tast for å fortsette..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Hva vil du gjøre? Alternativene dine er:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Vennligst velg (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Etter at problemrapporten har blitt sendt: vennligst fyll ut skjemaet i den\n" "automatisk åpnede nettleseren." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Send rapport (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Undersøk lokalt" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Vis rapport" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Behold rapportfilen for å sende den senere eller kopiere den til et annet " "sted" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Avbryt og &ignorer framtidige krasj i denne programversjonen" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Avbryt" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Problemrapportfil:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Bekreft" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Feil: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Den innsamlede informasjonen kan sendes til utviklerne for å forbedre\n" "programmet. Dette kan ta et par minutter." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Den innsamlede informasjonen sendes til feilsporingssystemet.\n" "Dette kan ta et par minutter." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Fullført" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ingen" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Valgt: %s. Flere valg:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Valg:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Filbane (Enter for å avbryte):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Filen eksisterer ikke." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Dette er en mappe." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "For å fortsette, må du gå til følgende URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Du kan starte en nettleser nå, eller kopiere denne URL-en til en nettleser " "på en annen maskin." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Start nettleseren nå" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "Ingen ventende krasjrapporter. Prøv --help for mer informasjon." #~ msgid "Application problem" #~ msgstr "Program feil" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Dette vil fjerne noen store elementer fra rapporten. Disse er veldig nyttige " #~ "for utviklere for å feilsøke problemet, men kan være for store for deg å " #~ "laste opp om du har en treg internettforbindelse." #~ msgid "Content of the report" #~ msgstr "Innhold i rapporten" #~ msgid "&Report Problem..." #~ msgstr "&Rapporter problem..." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Hvis du ikke gjorde noe konfidensielt (skrev inn passord eller annen\n" #~ "privat informasjon), kan du hjelpe til med å forbedre programmet ved å " #~ "rapportere\n" #~ "problemet." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Systemet støtte på et alvorlig kjerneproblem." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Du kan hjelpe utviklerne med å reparere pakken ved å rapportere problemet." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Du kan hjelpe utviklerne med å reparere problemet ved å rapportere det." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Send komplett rapport (anbefalt; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Send &redusert rapport (treg internettforbindelse; %s)" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Pakken \"%s\" ble ikke installert eller oppgradert." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Dette skjedde under en tidligere dvalemodus og forhindret den fra å starte " #~ "på nytt riktig." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Dette skjedde under en tidligere ventemodus og forhindret den fra å starte " #~ "på nytt riktig." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Redusert rapport (treg internettforbindelse; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorer framtidige krasj i denne programversjonen" #~ msgid "Restart _Program" #~ msgstr "Start _programmet på nytt" #~ msgid "Package problem" #~ msgstr "Pakkeproblem" #~ msgid "Kernel problem" #~ msgstr "Kjerneproblem" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Hvis du ikke gjorde noe konfidensielt (skrev inn passord eller annen privat " #~ "informasjon), kan du hjelpe til med å forbedre programmet ved å rapportere " #~ "problemet." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Komplett rapport (anbefalt; %s)" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Beklager, pakken\"%s\" kunne ikke " #~ "installeres eller oppgraderes.</span>" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s ble lukket uventet på %s på %s." #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Sende problemrapport til utviklerne?</b></big>\n" #~ "\n" #~ "Vennligst fyll ut skjemaet i det automatisk åpnede nettleservinduet etter at " #~ "problemrapporten har blitt sendt." #~ msgid "_Report Problem..." #~ msgstr "_Rapporter problem" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "feil antall argumenter, bruk --help for en kort hjelpedialog" #~ msgid "_Send Report" #~ msgstr "_Send rapport" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [alternativer] <apport feilrapport | kræsj ID>" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Dette er ikke en gyldig %s-pakke" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "du må enten gjøre en lokal operasjon (-s, -g, -o) eller bruke en " #~ "autentiseringsfil (--auth); kjør --help for mer hjelp" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Systemet kan bli ustabilt, og det blir kanskje nødvendig å starte maskinen " #~ "på nytt." �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/nds.po����������������������������������������������������������������������������0000664�0000000�0000000�00000102172�14416106601�011616� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# German, Low translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: mafix <launchpad@marfix.net>\n" "Language-Team: German, Low <nds@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Rapportiere ein Problem..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Ungültiger Problem Rapport" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Kompleter Raport (empfohlen; %s)" #~ msgid "_Send Report" #~ msgstr "_Sende Rapport" #~ msgid "Restart _Program" #~ msgstr "Programm neustarten" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Reduzierter Rapport (langsame Internetverbindung; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignoriere zukünftige Fehler von dieser Programmversion" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Große Objekte werden dann aus dem Bericht entfernt. Diese sind sehr nützlich " #~ "für die Entwickler, die das Programm verbessern, könnte aber zu groß sein, " #~ "wenn Sie über einen langsame Internetverbindung verfügen." #~ msgid "_Report Problem..." #~ msgstr "_Rapporttiere Problem" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Du kannst den Entwicklern helfen das Paket zu korrigieren mit den " #~ "Rapporttieren des Problems." #~ msgid "Content of the report" #~ msgstr "Inhalt des Raports" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ne.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000122164�14416106601�011437� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Nepali translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-12-27 16:39+0000\n" "Last-Translator: sarojdhakal <Unknown>\n" "Language-Team: Nepali <ne@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ne\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "एपोर्ट" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "रद्द गर्नुहोस्" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "ठीक छ" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "क्र्यास प्रतिवेदन" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>माफ गर्नुहोस् , आन्तरिक त्रुटी आइपर्‍यो ।</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "अरु समस्याहरू आइपरेमा , कम्प्युटर पुनःसुरु गर्न प्रयास गर्नुहोस्।" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "यो समस्या समाधान गर्न मदत गर्न त्रुटि रिपोर्ट पठाउनु होस्।" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "यो प्रोग्राम् संस्करण को भविष्य समस्या बेवास्ता गर्नुहोस्।" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "विवरण देखाउनुहोस्।" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "स्थानीयरूपमा जाँच गर्नुहोस्" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "बन्द नै छोड्नुहोस्।" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "जारी राख्नुहोस" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>समस्या जानकारी सङ्कलन हुदैछ​।</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "सूचना संकलन भइरहेको छ जस्ले डेवलपर्सलाई तपाईंले रिपोर्टको गर्नु भ​एको समस्या " "समाधान गर्न मद्दत हुन​ सक्छ।" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "समस्याको जानकारी अपलोड हुदैछ​।" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>समस्याको जानकारी अपलोड हुदैछ​।</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "एकत्र जानकारी बग ट्रयाकिङ सिस्टममा पठाइदैछ​। यो केही मिनेट लिन सक्छ।" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "एपोर्ट क्र्यास प्रतिवेदनहरू" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(बायनरी डेटा)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "माफ गर्नुहोस्, अनुप्रयोग %s अचानक रोकिएको छ।" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "माफ गर्नुहोस्, %s अचानक बन्द भएको छ।" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "माफ गर्नुहोस् , %s ले अन्तरिक त्रुटीको सामना गरेको छ।" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "यो समस्याको प्रतिवेदन डेभेलोपरहरूलाई पठाउन चाहनुहुन्छ ?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "पठाउनुहोस्" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "_अन्त्य गर्न दवाब दिनुहोस्" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "पुनः खोल्नुहोस्" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "अनुप्रयोग %s ले जवाफ दिन बन्द गरेको छ।" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "प्रोग्राम %s ले जवाफ दिन बन्द गरेको छ।" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "प्याकेज: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "माफ गर्नुहोस्, सफ्टवेयर स्थापना गर्दा त्रुटी भयो।" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "माफ गर्नुहोस् , अनुप्रयोग %s ले आन्तरिक त्रुटीको सामना गरेको छ।" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "माफ गर्नुहोस्, अनुप्रयोग %s अचानक बन्द भएको छ।" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "यस प्रकारका समस्याहरूलाई भविष्यमा वेवास्ता गर्नुहोस्" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "विवरण लुकाउनु॒होस्" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "उपयोग: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "गन्तव्य निर्देशिका अवस्थित छ तथा खाली छैन" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "प्रयोगकर्ता-नाम:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "पासवर्ड:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "समस्या जानकारी सङ्कलन हुँदैछ​।" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "समस्या जानकारी सङ्कलन हुँदैछ​।" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "समस्याको जानकारी अपलोड हुदैछ​।" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "प्रणाली जानकारी बटुल्नुहोस्" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "प्रणाली समस्या प्रतिवेदनहरू" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "कृपया प्रणाली कार्यक्रम को समस्या रिपोर्ट पहुँच गर्न आफ्नो पासवर्ड प्रविष्ट " "गर्नुहोस" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "समस्या रिपोर्ट गर्नुहोस्..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "डेवलपर्सलाई काम नगरे रिपोर्ट गर्नुहोस्" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "विस्तृत जानकारीका लागि man page हेर्नुहोस् !" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "भलग्रिन्डद्वारा उत्पादित लग फाइलको नाम निर्दिष्ट गर्नुहोस्" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "पहिलै बनाईएको sandbox dir (SDIR) पुनःप्रयोग गर्नुहोस वा यदि अवस्थित छैन भने " "बनाउनुहोस" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "पहिलै बनाईएको cache dir (CDIR) पुनःप्रयोग गर्नुहोस वा यदि अवस्थित छैन भने " "बनाउनुहोस" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "स्यान्डबक्स मा प्याकेजहरू स्थापना गर्दा डाउनलोड / उन्नति गरेर स्थापना " "रिपोर्ट गर्नुहोस" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "त्रुटी: %s सञ्चालन गर्न सकिएन। रोक्दै ।" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "तपाईंको सिस्टम अब अस्थिर बन्न सक्छ र फेरि सुरु गर्न आवश्यक हुन सक्छ।" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "यो सङ्लग्नहरू पठाउन चाहनुहुन्छ ? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "अज्ञात उपक्रम" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "माफ गर्नुहोस्, \"%s\" उपक्रम अप्रत्याशित बन्द भयो।" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s मा समस्या" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "अवैध समस्या प्रतिवेदन" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "तपाईंले यो समस्या रिपोर्ट पहुँच गर्न अनुमति छैन।" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "त्रुटि" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "निर्दिष्ट नगरिएको प्यकेज" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "इजाजत अस्वीकार गरियो" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "अवैध PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "%s प्याकेज अस्तित्वमा छैन" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "प्रतिवेदन सिर्जना गर्न सकिएन" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "समस्या प्रतिवेदन अद्यावधिक गर्दै" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "कुनै अतिरिक्त जानकारी संकलन गरिएन ।" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "तपाईले कस्तो समस्या प्रतिवेदन गर्न चाहनुहुन्छ?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "अज्ञात लक्षण" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "\"%s\" लक्षण विदित छैन।" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <प्रतिवेदन सङ्ख्या>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "प्याकेज नाम खुलाउनुहोस्" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "कुनै लक्षण सम्बन्धी त्रुटि प्रतिवेदन दर्ता गर्नुहोस्। (जब लक्षण नाम नै " "एकमात्र तर्क भएमा लागू हुने)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "gdb सत्र चलाउनुहोस्" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "यो समस्या रिपोर्ट क्षतिग्रस्त छ र अघी बढ्न सकिदैन।" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "वेब ब्राउजर सुरु गर्न सकिएन" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "%s खोल्न वेब ब्राउजर सुरु गर्न सकिएन।" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "सञ्जाल समस्या" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "मेमोरी सकियो" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "यो कार्यक्रम प्रतिवेदन गर्न सकिदैन:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "पूर्वविदित समस्या" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "यो अघिल्लो निलम्बित हुने समयमा भयो र​ सिस्टमलाई राम्रो सङं पुन: शुरू हुन बाट " "रोक्यो।" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "यो अघिल्लो हाइबर्नेसन् हुने समयमा भयो र​ सिस्टमलाई राम्रो सङं पुन: शुरू हुन " "बाट रोक्यो।" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "जारी राख्नको लागि कुनै कुञ्जी थिच्नुहोस्..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "तपाईं के गर्न चाहनु हुन्छ? तपाईंको विकल्प हो:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "छान्नुहोस् (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i बाइट)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "प्रतिवेदन पठाउनुहोस् (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "स्थानीयरूपमा जाँच गर्नुहोस्" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "प्रतिवेदन हेर्नुहोस्" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "रद्द गर्नुहोस् (&C)" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "समस्या रिपोर्ट फाइल:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "सुनिश्चित गर्नुहोस्" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "त्रुटि: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "सकियो" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "कुनै पनि हैन" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "छानिएको: %s। विकल्पहरू:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "चयनहरू:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "फाइल मार्ग (रद्द गर्न प्रविष्ट गर्नुहोस्):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "फाइल अवस्थित छैन ।" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "यो डारेक्टरी हो।" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "जारी राख्न, तपाईं निम्न URL मा जानैपर्ने हुन्छ:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "अहिले नै ब्राउजर सुरु गर्नुहोस्" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "यो असली %s प्याकेज होइन" #~ msgid "&Report Problem..." #~ msgstr "समस्या प्रतिवेदन गर्नुहोस् (&R)..." ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/nl.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000132722�14416106601�011447� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of apport.po to Nederlands # Dutch translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # Balaam's Miracle <balaam@balaamsmiracle.com>, 2008. msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Nederlands <nl_NL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Annuleren" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Ok" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Crashrapport" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Er is helaas een interne fout opgetreden.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Als er nog steeds problemen zijn, probeer dan de computer opnieuw te starten." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Een foutrapportage opsturen om te helpen dit probleem op te lossen" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Toekomstige problemen bij deze programmaversie negeren" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Details tonen" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "lokaal _onderzoeken" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Gesloten laten" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Doorgaan" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Bezig met verzamelen van probleeminformatie</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Er wordt informatie verzameld die ontwikkelaars kan helpen om het " "gerapporteerde probleem te verhelpen." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Bezig met versturen van foutgegevens" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Bezig met het versturen van probleeminformatie</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "De verzamelde gegevens worden naar het foutbeheersysteem verzonden. Dit kan " "enkele minuten duren." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport-crashbestand" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binaire gegevens)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Helaas is de toepassing %s onverwacht gestopt." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "%s is helaas onverwachts gesloten." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Er is in %s helaas een interne fout opgetreden." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Probleemrapport naar de ontwikkelaars sturen?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Versturen" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Geforceerd gesloten" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Opnieuw starten" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "De toepassing %s reageert niet meer." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Het programma ‘%s’ geageert niet meer." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakket: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" "Er is helaas een fout opgetreden bij het installeren van de software." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "In de toepassing %s is een interne fout opgetreden." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "De toepassing %s werd onverwachts gesloten." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Dit type problemen in de toekomst negeren" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Details verbergen" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Gebruik: %s <rapport> <doelmap>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Doelmap bestaat en is niet leeg." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Bezig met verzamelen van probleeminformatie" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Systeeminformatie verzamelen" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Authenticatie is vereist om systeeminformatie voor dit probleemrapport te " "verzamelen" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Systeemprobleemrapporten" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Voer uw wachtwoord in om toegang te krijgen tot de probleemrapporten van " "systeemprogramma's" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Een probleem rapporteren..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Rapporteer een fout aan de ontwikkelaars" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Zie man-pagina voor details." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "geef de naam op van het logbestand dat door valgrind is gemaakt" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "gebruik een eerder aangemaakte uitprobeermap (sandbox) (SDIR) opnieuw, of " "maak hem aan als deze niet bestaat" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "u moet geen uitprobeermap maken of hergebruiken voor extra debugsymbolen; " "vertrouw alleen op geïnstalleerde debugsymbolen." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "gebruik een eerder aangemaakte cache dir (CDIR) opnieuw, of maak hem aan als " "deze niet bestaat" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "rapporteren van de download/installatie-voortgang wanneer pakketten in " "sandbox worden geïnstalleerd" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "het uitvoerbare bestand dat gedraaid wordt onder valgrind's " "geheugencontrolehulpmiddel voor geheugellekkagedetectie" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Fout: %s is geen uitvoerbaar bestand. Wordt stopgezet." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Uw systeem kan nu instabiel worden en moet mogelijk opnieuw worden opgestart." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Nieuwe traces naar stdout schrijven in plaats van ze te plaatsen in het " "rapport." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Een interactieve gdb-sessie starten met de coredump van het rapport (-o " "genegeerd; herschrijft het rapport niet)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Gewijzigde rapport naar opgegeven bestand schrijven in plaats van het " "originele bestand bij te werken" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "De coredump verwijderen uit het rapport na hergeneratie van de stacktrace" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "CoreFile van rapport overschrijven" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "ExecutablePath van rapport overschrijven" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "ProcMaps van rapport overschrijven" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Pakketinformatie van rapport opnieuw aanmaken" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Tijdsaanduiding vooraan in logberichten invoegen, voor batchverwerking" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Softwarebronnen van derden, uit bronnen die in rapporten gespecificeerd " "zijn, aanmaken en gebruiken" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Map voor uitgepakte pakketten. In het vervolg zal er bij het uitvoeren van " "uitgegaan worden dat elk reeds gedownloade pakket ook naar deze zandbak is " "uitgepakt." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Pad naar het bestand met de aanmeldinformatie voor de crash-database. Dit " "wordt gebruikt bij het opgegeven van een crash-ID om hergetraceerde " "stacktraces te uploaden (alleen als -g, -o en -s niet zijn opgegeven)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Hergetraceerde stacktraces tonen en voor bevestiging vragen alvorens te " "verzenden naar de crash-database." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Pad naar de dubbele sqlite-database (standaard: geen controle voor " "duplicaten)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "U kunt niet -C zonder -S gebruiken. Wordt stopgezet." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Deze bijlagen verzenden? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Dit pakket lijkt niet juist te zijn geïnstalleerd" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Dit is geen officieel %s pakket. Verwijder pakketten van derden en probeer " "het opnieuw." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Er staan enkele verouderde pakketversies op uw systeem geïnstalleerd. " "Upgrade de volgende pakketten en controleer of het probleem nog steeds " "optreedt.\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "onbekend programma" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Excuses, het programma \"%s\" werd onverwachts afgesloten" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Probleem in %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Uw computer heeft onvoldoende vrij werkgeheugen om het probleem automatisch " "te analyseren en een rapport naar de ontwikkelaars te sturen." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Ongeldig probleemrapport" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "U bent niet bevoegd om dit probleemrapport te bekijken." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Fout" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Er is onvoldoende schijfruimte om dit rapport te verwerken" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Geen pakket opgegeven" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "U moet een pakket of PID opgeven. Zie --help voor meer informatie." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Toegang geweigerd" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "U bent niet de eigenaar van het opgegeven proces. Voer dit programma uit als " "proceseigenaar of als root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Ongeldig PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Het opgegeven proces-PID behoort niet tot een programma." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Pakket %s bestaat niet" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Wat voor soort probleem wilt u rapporteren?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Onbekend symptoom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Het symptoom \"%s\" is onbekend." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opties] [symptomen|pid|pakket|programmapad|.apport/.crash-bestand]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "In modus voor foutrapportage starten. Vereist --package en een optionele --" "pid, of gewoon een --pid. Als ze beide niet zijn opgegeven, zal een lijst " "met bekende symptomen getoond worden. (Impliciet als een enkel argument is " "opgegeven.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Een foutrapport over een symptoom indienen. (Impliciet als symptoomnaam het " "enige argument zijn.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Pakketnaam in --file-bug-modus opgeven. Dit is optioneel als een --pid is " "opgegeven. (Impliciet als pakketnaam het enige argument is.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "De gegeven PID is een vastgelopen toepassing." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "De vastloper van een gegeven .apport- of .crash-bestand rapporten in plaats " "van de wachtende rapporten in %s. (Impliciet als file het enige argument is.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Het versienummer van Apport weergeven." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Dit zal apport-retrace starten in een terminalvenster om de crash te " "onderzoeken." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "gdb-sessie draaien" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "gdb-sessie draaien zonder debugsymbolen te downloaden" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Update %s met volledige symbolic stack trace" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Dit probleemrapport verwijst naar een programma dat niet meer geinstalleerd " "is." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Het probleem deed zich voor bij het programma %s dat gewijzigd werd sinds " "het voorvallen van de crash." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Dit probleemrapport is beschadigd en kan niet worden verwerkt." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Het rapport behoort bij een pakket dat niet is geïnstalleerd." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "Er is een fout opgetreden bij de poging deze probleemrapportage te verwerken:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Kon de naam van het pakket of het bronpakket niet bepalen." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Kon de webbrowser niet starten" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Kon de webbrowser niet starten om %s te openen." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Voer uw accountinformatie in voor het foutbeheersysteem %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Netwerkprobleem" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Verbinding met crash-database mislukt, controleer uw internetverbinding." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Geheugen vol" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Uw systeem heeft onvoldoende geheugen om dit foutenrapport te verwerken." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Het probleem kan niet worden gerapporteerd:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Probleem reeds bekend" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Dit probleem werd reeds gerapporteerd in het foutenrapport dat in de " "webbrowser wordt weergegeven. Controleer of u extra informatie kunt " "toevoegen die voor de ontwikkelaars nuttig kan zijn." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Dit probleem is al doorgegeven aan de ontwikkelaars. Dank u wel!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Dit gebeurde tijdens een eerdere pauzestand, waardoor het systeem niet op de " "juiste wijze herstart werd." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Dit gebeurde tijdens een eerdere slaapstand, waardoor het systeem niet op de " "juiste wijze herstart werd." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Het ontwakingsproces liep vlak voor het einde vast en zag eruit alsof het " "compleet geslaagd was." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Druk op een toets om door te gaan..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Wat wilt u doen? U kunt kiezen uit:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Maak uw keuze (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Zodra het probleemrapport is verzonden, wordt u verzocht het formulier\n" "in de automatisch geopende webbrowser in te vullen." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "Rapport ver&sturen (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "Lokaal &onderzoeken" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "Rapport weerge&ven" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "Rapportbestand bewaren voor latere verzending, of om elders heen te &kopiëren" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Annuleren en toekomstige vastlopers van deze programmavers&ie negeren" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Annuleren" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Probleemrapport-bestand:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "Be&vestigen" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Fout: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "De verzamelde informatie kan naar de ontwikkelaars worden verzonden om\n" "de toepassing te verbeteren. Dit kan enkele minuten duren." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "De verzamelde informatie wordt naar het foutbeheersysteem verzonden.\n" "Dit kan enkele minuten duren." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "Geree&d" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "geen" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Geselecteerd: %s. Meerdere keuzes:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Keuzes:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Pad naar het bestand (Enter om te stoppen):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Bestand bestaat niet." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Dit is een map." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Om verder te gaan moet u het volgende adres bezoeken:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "U kunt nu een browser starten, of dit adres in een browser op een andere " "computer openen." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "De browser nu starten" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Geen crashrapporten in de wachtrij. Probeer --help voor meer informatie." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Volledig verslag (aanbevolen; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Probleemrapport aan de ontwikkelaars sturen?</b></big>\n" #~ "\n" #~ "Vul, nadat het probleemrapport is verstuurd, het formulier in dat " #~ "automatisch in een webbrowser geopend wordt." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Als u niets vertrouwelijks aan het doen was (invoeren van wachtwoorden of " #~ "privé-informatie), dan kunt u helpen de toepassing te verbeteren door het " #~ "probleem te melden." #~ msgid "Application problem" #~ msgstr "Toepassingprobleem" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Als u niets vertrouwelijks aan het doen was (wachtwoorden of andere privé-\n" #~ "informatie invoeren), dan kunt u helpen om de toepassing te verbeteren door\n" #~ "het probleem te melden." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s werd onverwachts afgesloten op %s om %s." #~ msgid "Restart _Program" #~ msgstr "_Programma herstarten" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Beperkt rapport (langzame internetverbinding; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Bepe&rkt rapport versturen (langzame internetverbinding; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Dit verwijdert enkele grote items uit het rapport. Deze zijn erg nuttig voor " #~ "de ontwikkelaars om het probleem te analyseren, maar kunnen te groot zijn " #~ "voor het uploaden als u een langzame internetverbinding heeft." #~ msgid "Kernel problem" #~ msgstr "Kernelprobleem" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "U kunt de ontwikkelaars helpen om het pakket te repareren door het probleem " #~ "te rapporteren." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Dit is geen authentiek %s-pakket." #~ msgid "Content of the report" #~ msgstr "Inhoud van het verslag" #~ msgid "Package problem" #~ msgstr "Pakketprobleem" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "U kunt de ontwikkelaars helpen met het probleem te verhelpen, door het te " #~ "rapporteren." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Het pakket \"%s\" kon niet worden geïnstalleerd of opgewaardeerd" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "ongeldig aantal argumenten; gebruik --help voor een korte handleiding" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Dit gebeurde tijdens een vorige pauzestand en zorgde ervoor dat de computer " #~ "niet goed ontwaakte." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Dit vond plaats tijdens een vorige slaapstand en zorgde ervoor dat de " #~ "computer niet goed ontwaakte." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [opties] <apport-probleemrapport | crash-ID>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "u moet een lokale handeling uitvoeren (-s, -g, -o) of een " #~ "authenticatiebestand (--auth) meegeven; zie --help voor een korte handleiding" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "Toekomstige vastlopers van deze programmavers_ie negeren" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Er is een ernstig kernelprobleem op uw computer opgetreden." #~ msgid "&Report Problem..." #~ msgstr "P&robleem melden..." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "Compleet rapport ver&sturen (aanbevolen; %s)" #~ msgid "_Report Problem..." #~ msgstr "Probleem _rapporteren..." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Excuses, de installatie of upgrade van " #~ "pakket \"%s\" is mislukt.</span>" #~ msgid "_Send Report" #~ msgstr "Rapport ver_sturen" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "De toepassing %s is helaas onverwachts gesloten." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Uw systeem zou nu instabiel kunnen worden en dient mogelijk opnieuw " #~ "opgestart te worden." ����������������������������������������������apport-2.20.11/po/oc.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000144373�14416106601�011444� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Occitan (post 1500) translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n" "Language-Team: Occitan (post 1500) <oc@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apòrt" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Abandonar" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "D'acòrdi" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Rapòrt d'anomalia" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>O planhèm, una error intèrna s'es produita !</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "En cas de problèmas mai, ensajatz de reaviar vòstre ordenador." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Mandar un rapòrt d'anomalia per ajudar a resòlvre aqueste problèma" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorar los problèmas que venon d'aquesta version del programa" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Afichar los detalhs" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examinar en local" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Daissar tampat" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Contunhar" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>A collectar d'informacions ligadas al problèma</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "De donadas son en cors de collècta per ajudar los desvolopaires a corregir " "lo problèma qu'avètz rencontrat." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Mandadís de las informacions ligadas al problèma" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Mandadís de las informacions ligadas a l'incident</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Las donadas collectadas son transmesas al sistèma de seguit dels bugs. Aquò " "pòt prene qualques minutas." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Fichièr d'arrèst brutal d'Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(donadas binàrias)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "O planhèm, %s s'es arrestada d'un biais inesperat." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "O planhèm, %s a quitat d'un biais imprevist." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "O planhèm, %s a rencontrat una error intèrna." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Mandar un rapòrt d'errors als desvolopaires ?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Mandar" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Tampat de fòrça" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Reaviar" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "L'aplicacion %s a daissat de respondre." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Lo programa \"%s\" a daissat de respondre." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paquet : %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" "O planhèm, una error s'es produita al moment de l'installacion del logicial." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "L'aplicacion %s a patit una error intèrna." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "L'aplicacion %s a quitat d'un biais imprevist." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorar los problèmas d'aquesta mena que venon" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Amagar los detalhs" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Utilizacion : %s <rapòrt> <dorsièr cibla>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Lo dorsièr de destinacion existís ja e es pas void." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nom d'utilizaire :" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Senhal :" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Collècta de las informacions ligadas al problèma" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Collècta d'informacions ligadas al problèma" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Las informations collectadas pòdon èsser mandadas als desvolopaires per " "melhorar l'aplicacion. Aquò pòt prene qualques minutas." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Mandadís de las informacions ligadas al problèma" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Collectar d'informacions a prepaus del sistèma" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Una autentificacion es necessària per collectar l'informacion del sistèma " "requesida per aqueste rapòrt de bug" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Rapòrts de problèmas sistèma" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Picatz vòstre senhal per accedir a de rapòrts de problèmas de programas " "sistèma" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Senhalar un problèma..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Senhalar un disfoncionament als desvolopaires" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Vejatz la pagina de manual per mai de detalhs." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "especifica lo nom del fichièr jornal produit per valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "reütilizar un repertòri de nauc de sabla (« sandbox ») (SDIR) creat " "precedentament o, s'existís pas, lo crear" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "crear pas o reütilizar pas un repertòri sandbox per de simbòls de desbugatge " "addicionals mas s'apuejar solament suls simbòls de desbugatge instaltats." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "reütilizar un repertòri de cache (CDIR) precedentament creat o, s'existís " "pas, lo crear" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "afichar la progression del telecargament e de l'installacion al moment de " "l'installacion de paquets dins lo nauc de sabla (« sandbox »)" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "l'executable aviat dins l'aisina de verificacion de la memòria de valgrind " "per detectar un pèrda de memòria." #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Installar un paquet suplementari dins lo nauc de sabla (pòt èsser " "especificat mantun còp)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Error : %s es pas un executable. Arrèst." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Ara, vòstre sistèma se pòt far instable e pòt aver besonh d'èsser reaviat." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Plaçar pas las « traças » novèlas dins lo rapòrt de bug, mas los escriure " "sus la sortida estandarda." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Avia una session gdb interactiva amb l'imatge memòria (core dump) del rapòrt " "(-0 ignorat ; reescriu pas lo rapòrt)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Escriu lo rapòrt dins un fichièr donat puslèu que de modificar lo rapòrt " "d'origina." #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Suprimir l'imatge memòria (core dump) del compte rendut aprèp regeneracion " "de l'estat de la pila" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Espotir lo fichièr d'imatge memòria (CoreFile) del rapòrt" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Espotir l'emplaçament de l'executable (ExecutablePath) del rapòrt" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Espotir la lista dels processus (ProcMaps) del rapòrt" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Tornar construire las informacions suls paquets del rapòrt" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Metre en plaça un nauc de sabla temporari e i telecargar/installar los " "paquets e los simbòls de desbugatge necessaris ; sens aquesta opcion, serà " "supausat que los paquets e los simbòls de desbugatge necessaris son ja " "installats sul sistèma. L'argument punta cap al dorsièr de configuracion de " "basa del sistèma de creacion de paquets ; s'especificatz \"system\", los " "fichièrs de configuracion del sistèma seràn utilizats, mas sols los " "plantatges de la version en cors d'execucion poiràn èsser traçats." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Senhalar l'avançament del telecargament/de l'installacion pendent " "l'installacion de paquets dins lo nauc de sabla." #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Prefixar un orodatatge als messatges de jornal, per un tractament per lòts" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Crear e utilizar de depauses tèrces a partir d'originas especificadas dins " "de rapòrts" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Repertòri de cache pels paquets telecargats dins lo nauc de sabla" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Repertòri pels paquets descompressats. Las execucions futuras presumiràn " "qu'un paquet ja telecargat serà tanben extrait dins aqueste nauc de sabla." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Emplaçant d'un fichièr que conten las informacions d'autentificacion a la " "basa de donadas dels plantatges. Aquò's utilizat quand òm indica un ID de " "plantatge per cargar l'estat de la pila (solzment se -g, -o o -s son pas " "especificats)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Afichar l'estat de la pila reconstituida e demandar una confirmacion abans " "de lo mandar a la basa de donadas dels plantatges." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Emplaçament de la còpia de la banca de donadas SQLite (per defaut : pas de " "verificacion de la còpia)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Podètz pas utilizar -C sens -S. Arrèst." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "D'acòrdi per mandar aquò coma pèças juntas ? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Sembla qu'aqueste paquet es pas installat corrèctament." #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Aqueste paquet es pas oficialament pres en carga per %s. Desinstallatz tot " "paquet tèrç e tornatz ensajar." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Las versions installadas d'unes paquets son obsolets. Metètz a jorn los " "paquets seguents, puèi verificatz se lo problèma es encara present :%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programa desconegut" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "O planhèm, lo programa « %s » a quitat d'un biais imprevist" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problèma dins %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Vòstre ordenador possedís pas pro de memòria liura per analisar " "automaticament lo problèma e mandar un rapòrt als desvolopaires." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Rapòrt d'incident invalid" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Sètz pas autorizat a accedir aqueste rapòrt d'incident." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Error" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "I a pas pro d'espaci de disc disponible per tractar aqueste rapòrt." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Cap de paquet pas especificat" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Vos cal precisar un paquet o un PID. Utilizatz --help per mai d'informacions." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Autorizacion refusada" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Lo processus especificat vos aparten pas. Executar aqueste programa en tant " "que proprietari del processus o en tant qu'administrator (root)." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID invalida" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "L'ID de processus especificat aparten pas a cap de programa." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "L'escript %s a pas pogut determinar un paquet afectat" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Lo paquet %s existís pas" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Impossible de crear lo rapòrt" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Mesa a jorn del rapòrt d'incident" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Aqueste rapòrt es pas estat fait per vos o vos i sètz pas inscrit ; o es " "tampat o s'agís d'un doblon.\n" "Creatz un rapòrt novèl en utilizant « apport-bug »." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Sètz pas lo redactor d'aqueste rapòrt d'incident. Es pus aisit de marcar un " "bug coma duplicata que non pas de desplaçar vòstres comentaris e pèças " "juntas sus un bug novèl.\n" "Vos recomandam doncas de completar un senhalament de bug novèl en utilizant " "\"apport-bug\" e de ne far un comentari dins lo bug inicial. \n" "Sètz segur que volètz contunhar ?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Cap d'informacion suplementària es pas estada collectada." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Quin tipe de problèma volètz senhalar ?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Simptòma desconegut" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Lo simptòma « %s » es desconegut." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Aprèp la tampadura d'aqueste messatge, clicatz sus la fenèstra de " "l'aplicacion per la quala volètz senhalar un problèma." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop a pas pogut determinar l'ID del processus de la fenèstra" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <numèro del rapòrt>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Indicatz lo nom del paquet." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Apondre un marcador suplementari pel rapòrt. Pòt èsser especificat mantun " "còp." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Avia en mòde senhalament de bug. Necessita l'argument --package e --pid en " "opcion, o simplament --pid. Se n'i a pas cap de provesit, aficha una lista " "de simptòmas coneguts. (Implicit se un sol argument es provesit.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Clicatz sus la fenèstra per la quala volètz senhalar un problèma." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Començar en mòde « mesa a jorn de bug ». Accèpta l'opcion --package" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Efectua un senhalament de bug a prepaus d'un simptòma. (Implicit se lo nom " "del simptòma es donat coma argument unic.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Especifica un nom de paquet dins lo mòde --file-bug. Aquò's opcional se --" "pid es especificat. (Implicit se lo nom del paquet es donat coma argument " "unic.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Especificar un programa que s'executa en mòde « --file-bug ». S'aquò es " "especificat, lo rapòrt de bug contendrà mai d'informacions. (implicita se " "l’identificant del processus es passat coma argument unic)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Lo pid provesit es una aplicacion que respond pas." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Senhala lo bug a partir d'un fichièr .apport o .crash donat puslèu qu'a " "partir de los que son en espèra dins %s. (Implicit se lo fichièr es donat " "coma argument unic.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "En mòde de senhalament de bug, enregistra las informacions collectadas dins " "un fichièr puslèu que de generar un rapòrt. Aqueste fichièr poirà èsser " "utilizat pus tard a partir d'una autra maquina per mandar un rapòrt." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Aficha lo numèro de version d'Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Aquò va aviar apport-retrace dins una fenèstra de terminal per examinar lo " "crash." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Aviar una session gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Executar la session gdb sens telecargar los simbòls de desbugatge" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Mesa a jorn de %s amb una traça de la pila totalament simbolica" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Aqueste rapòrt d'incident s'aplica a un logicial qu'es pas pus installat per " "aquesta distribucion." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Lo problèma concernís lo programa %s qu'a cambiat dempuèi lo plantatge." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Aqueste rapòrt d'incident es damatjat e pòt pas èsser tractat." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Lo rapòrt fa referéncia a un paquet pasinstallat." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "Una error s'es producha al moment del tractament d'aqueste rapòrt " "d'anomalia :" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Impossible de determinar lo nom del paquet o del paquet font." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Impossible d'aviar lo navegador web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Impossible d'aviar lo navegador web per dobrir %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Picatz las informacions de vòstre compte pel sistèma de seguit dels bugs %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problèma de ret" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Impossible de se connectar a la basa de donadas dels plantatges. Verificatz " "vòstra connexion a l'Internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memòria saturada" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Vòstre sistèma dispausa pas de pro de memòria per tractar aqueste rapòrt " "d'incident." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Lo problèma pòt pas èsser senhalat :\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problèma ja conegut" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Aqueste problèma ja es estat senhalat dins lo rapòrt d'incident afichat per " "vòstre navigador. Verificatz se podètz apondre d'informacions " "complementàrias susceptiblas d'ajudar los desvolopaires." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Aqueste problèma es ja estat senhalat als desvolopaires. Mercé !" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Aquò s'es produith precedentament al moment d'una mesa en velha e a empachat " "lo sistèma de se reaviar corrèctament." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Aquò s'es produit precedentament al moment d'una mesa en velha perlongada e " "a empachat lo sistèma de se reaviar corrèctament." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Lo processus de represa s'es blocat juste abans d'arribar a son tèrme e " "apareisserà coma s'èra acabat normalament." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Quichatz sus una tòca per contunhar..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Qué ne volètz far ? Las causidas son :" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Fasètz una causida (%s) :" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i octets)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Un còp que lo rapòrt d'incident serà estat mandat, completatz lo\n" "formulari dobèrt automaticament dins vòstre navigador Web." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Mandar lo rapòrt (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examinar en local" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Veire lo rapòrt" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Conservar lo fichièr del rapòrt per lo mandar ulteriorament o lo copiar " "endacòm" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Anullar e &ignorar los plantatges venents d'aquesta version del programa" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Anullar" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Fichièr del rapòrt d'incident :" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirmar" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Error : %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Las informacions collectadas pòdon èsser mandadas als desvolopaires per \n" "melhorar l'aplicacion. Aquò pòt prene qualques minutas." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Las informacions collectadas son mandadas al sistèma de seguit de bugs.\n" "Aquò pòt prene qualques minutas." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Acabat" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "pas cap" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Seleccionat : % s. Causida multipla :" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Causida multipla :" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Emplaçament del fichièr (tòca Entrada per anullar) :" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Lo fichièr existís pas." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Aquò's un repertòri." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Per contunhar, vos cal anar a aquela adreça :" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Podètz dobrir un navigador Web ara, o picar aquesta URL dins un navigador " "sus un autre ordenador." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Aviar un navigador Web ara" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Pascap de rapòrt d'incident en espèra. Ensajatz --help per mai " "d'informacions." #~ msgid "&Details..." #~ msgstr "&Detalhs" #~ msgid "Restart _Program" #~ msgstr "Tornar aviar lo _programa" #~ msgid "Content of the report" #~ msgstr "Contengut del rapòrt" #~ msgid "&Report Problem..." #~ msgstr "&Senhalar lo problèma..." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Se fasiatz pas res de confidencial (picada de senhals o d'autras\n" #~ "informacions privadas), podètz ajudar a melhorar l'aplicacion en senhalant\n" #~ "lo problèma." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s a quitat d'un biais imprevist lo %s à %s" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Un problèma seriós amb lo nucli s'es produch sus vòstre sistèma." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Mandar un rapòrt complet (recomandat ; %s)" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Podètz ajudar los desvolopaires a resòlvre lo problèma en lo senhalant." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Podètz ajudar los desvolopaires a corregir aqueste problèma en lo senhalant." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Mandar un rap*rt ab&reujat (connexion Internet lenta ; %s)" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "L'installacion o la mesa a jorn dl paquet « %s » a fracassat." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Aquò s'es produch al moment d'una mesa en velha precedenta ; aquò l'empacha " #~ "de tornar prene corrèctament." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Aquò s'es produch al moment d'una ivernacion precedenta ; aquò l'empacha de " #~ "tornar prene corrèctament." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Rapòrt complet (recomandat ; %s)" #~ msgid "Application problem" #~ msgstr "Problèma logicial" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">O planhèm, fracàs al moment de " #~ "l'installacion o de la mesa a jorn del paquet « %s ».</span>" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Mandar un rapòrt d'incident als desvolopaires ?</b></big>\n" #~ "\n" #~ "Un còp lo rapòrt mandat, emplenatz lo formulari afichat automaticament per " #~ "vòstre navigador Web." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Rapòrt abreujat (connexion Internet lenta ; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "De partidas voluminosas van èsser suprimidas del rapòrt. Son fòrça utilas " #~ "als desvolopaires per resòlvre lo problèma, mas se pòdon revelar tròp " #~ "pesugas al moment de lor transmission se dispausatz pas que d'una connexion " #~ "Internet de bas debit." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorar los plantatges venents d'aquesta version del programa" #~ msgid "_Report Problem..." #~ msgstr "Senhalar aqueste p_roblèma..." #~ msgid "Package problem" #~ msgstr "Problèma de paquet" #~ msgid "Kernel problem" #~ msgstr "Problèma de nucli" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Se fasiatz pas res de confidencial (picada de senhals o d'informacions " #~ "privadas), podètz ajudar a melhorar l'aplicacion en senhalant lo problèma." #~ msgid "_Send Report" #~ msgstr "_Mandar lo rapòrt" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "Nombre d'arguments incorrècte ; utilizatz --help per una ajuda succincta" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "Vos cal far una operacion locala (-s, -g, -o) o provesir un fichièr " #~ "d'autentificacion (--auth) ; vejatz --help per una ajuda succinta" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Aquò's pas es pas un paquet %s autentic" #~ msgid "Send this data to the developers?" #~ msgstr "Mandar aquelas donadas als desvolopaires ?" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "" #~ "O planhèm, lo paquet « %s » a pas pogut èsser installat o mes a jorn." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "O planhèm, %s a quitat d'un biais imprevist" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Aprèp lo mandadís del rapòrt d'incident, completatz lo formulari dobèrt " #~ "automaticament dins lo navigador Web." #~ msgid "Generic error" #~ msgstr "Error generica" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ignorar los plantatges que venon d'aquesta version del logicial" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "O planhèm, lo programa « %s » a quitat d'un biais imprevist." #~ msgid "Restart &Program" #~ msgstr "Reaviar lo &programa" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "O planhèm, %s a quitat d'un biais imprevist." #~ msgid "&Send" #~ msgstr "&Mandar" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "O planhèm, l'aplicacion %s a quitat d'un biais imprevist." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "Vòstre sistèma poiriá venir instable e necessitar una reaviada." ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/pa.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000101205�14416106601�011426� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Punjabi translation for apport # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2014. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2014-02-02 00:14+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Punjabi <pa@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: pa\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "ਵੇਰਵਾ ਵੇਖੋ" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "ਬੰਦ ਰਹਿਣ ਦਿਓ" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "ਜਾਰੀ ਰੱਖੋ" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "ਭੇਜੋ" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "ਮੁੜ-ਚਲਾਓ" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "ਪੈਕੇਜ: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "ਅਫਸੋਸ, ਸਾਫਟਵੇਅਰ ਇੰਸਟਾਲ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ ਆਈ ਹੈ।" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "ਐਪਲੀਕੇਸ਼ਨ %s ਨੂੰ ਅੰਦਰੂਨੀ ਗਲਤੀ ਆਈ ਹੈ।" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "ਐਪਲੀਕੇਸ਼ਨ %s ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਈ ਹੈ।" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "ਵੇਰਵਾ ਓਹਲੇ" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "ਯੂਜ਼ਰ-ਨਾਂ:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "ਪਾਸਵਰਡ:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "ਸਮੱਸਿਆ ਰਿਪੋਰਟ" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "ਵਿਸਥਾਰ ਲਈ ਮੈਨ ਪੇਜ ਵੇਖੋ।" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "ਸੈਂਡ ਬੌਕਸ ਵਿੱਚ ਵਾਧੂ ਪੈਕਿਜ ਇੰਸਟਾਲ (ਇਸਨੂੰ ਕਈ ਵਾਰ ਨਿਸ਼ਚਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "ਗਲਤੀ: %s ਚੱਲਣਯੋਗ ਨਹੀਂ ਹੈ। ਬੰਦ ਹੋ ਰਿਹਾ ਹੈ।" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/pl.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000141625�14416106601�011453� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Polish translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-12-10 11:29+0000\n" "Last-Translator: Tomasz Dominikowski <dominikowski@gmail.com>\n" "Language-Team: Polish <pl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: pl\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Anuluj" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Zgłoszenie awarii" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Przepraszamy, wystąpił wewnętrzny błąd.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Jeśli wystąpią kolejne awarie, proszę spróbować ponownie uruchomić komputer." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Wysłanie zgłoszenia o błędzie, aby pomóc go usunąć" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorowanie przyszłych błędów tej wersji programu" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Wyświetl szczegóły" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Zbadaj lokalnie" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Pozostaw zakończony" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Kontynuuj" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Zbieranie informacji o błędzie</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Trwa zbieranie informacji, które mogą pomóc twórcom programu usunąć " "zgłoszony błąd." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Wysyłanie informacji o problemie" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Wysyłanie informacji o błędzie</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Zebrane informacje są wysyłane do systemu śledzenia błędów. To może potrwać " "kilka minut." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Plik zgłoszenia Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(dane binarne)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Niestety, program %s niespodziewanie wstrzymał pracę." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Przepraszamy, %s został niespodziewanie zakończony." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Przepraszamy, wystąpił wewnętrzny błąd działania %s." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Zgłosić błąd twórcom programu?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Wyślij" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Wymuś zakończenie" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Uruchom ponownie" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Program %s przestał odpowiadać." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Program „%s” przestał odpowiadać." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pakiet: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Przepraszamy, wystąpił błąd podczas instalowania oprogramowania." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Wystąpił wewnętrzny błąd programu %s." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Program %s został niespodziewanie zakończony." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorowanie problemów tego typu w przyszłości" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Ukryj szczegóły" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Użycie: %s <ZGŁOSZENIE> <KATALOG DOCELOWY>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Katalog docelowy istnieje i nie jest pusty." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nazwa użytkownika:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Hasło:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Zbieranie informacji o problemie" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Zbieranie informacji o błędzie" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Zebrane informacje mogą zostać wysłane do twórców programu w celu jego " "usprawnienia. To może potrwać kilka minut." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Wysyłanie informacji o błędzie" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Pobranie informacji o systemie" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "Aby pobrać informacje o systemie, wymagana jest autoryzacja" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Raporty problemów systemowych" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Aby uzyskać dostęp do raportów o błędach systemowych, należy wprowadzić hasło" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Zgłaszanie błędu" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Zgłasza twórcom błędy działania oprogramowania" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Zajrzyj na stronę podręcznika systemowego po więcej szczegółów." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "Podaj nazwę pliku logów, generowanych przez valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "Ponowne użycie istniejącego już katalogu sandbox (SDIR) lub jego utworzenie" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "Katalog sandbox nie zostanie utworzony ani użyty ponownie dla dodatkowych " "symboli debugowania. Polegamy tylko na symbolach już zainstalowanych." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "Ponowne użycie istniejącego już katalogu cache (CDIR) lub jego utworzenie" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "Raportowanie postępu pobierania/instalacji podczas instalowania pakietów do " "sandbox" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "Element wykonalny uruchamiany poprzez narzędzie memcheck programu Valgrind, " "mające za zadanie detekcję wycieków pamięci" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "Instaluje dodatkowy pakiet w piaskownicy (można użyć wiele razy)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Błąd: nie można wykonać %s. Zatrzymywanie." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "System może być niestabilny, dlatego może być wymagane jego ponowne " "uruchomienie." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Nie dodaje nowych śladów do zgłoszenia tylko wypisuje je na standardowe " "wyjście." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Uruchamia interaktywną sesję gdb na zrzucie pamięci zgłoszenia (ignoruje " "opcję -o; nie przepisuje zgłoszenia)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Napisz zmienione zgłoszenie dla danego pliku zamiast zmieniać oryginalne " "zgłoszenie" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Usuwa zrzut pamięci ze zgłoszenia po regeneracji śladu stosu." #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Zastąp CoreFile raportu" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Zastąp ExecutablePath raportu" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Zastąp ProcMaps raportu" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Przebudowuje informacje o pakiecie w zgłoszeniu" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Buduje tymczasowy sandbox oraz pobiera/instaluje w nim potrzebne pakiety " "wraz z symbolami debugowania. Bez tej opcji założone zostaje, że niezbędne " "pakiety i symbole są już zainstalowane w systemie. Argument wskazuje na " "katalog bazy konfiguracji systemu pakietów. Wybranie opcji \"system\" " "skutkuje użyciem plików konfiguracji systemu - możliwe będzie wyłącznie " "śledzenie i analiza (retrace) problemów, które miały miejsce w bieżąco " "zainstalowanym wydaniu systemu." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Wyświetl pasek postępu pobierania/instalowania podczas instalowania pakietów " "w piaskownicy" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Dodanie informacji o czasie do logów dla operacji trybu wsadowego (batch " "operation)" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Utwórz i użyj repozytoriów osób trzecich ze źródeł określonych w raportach" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Określa katalog podręczny pakietów pobieranych do piaskownicy" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Katalog dla nierozpakowanych pakietów. Przyszłe użycie domyślnie założy, że " "każdy z już pobranych pakietów, jest również rozpakowany do tego sandboxa." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Ścieżka do pliku z danymi uwierzytelnienia bazy danych problemów. Opcja " "używana podczas podawania identyfikatora problemu w celu przesłania ponownie " "prześledzonego śladu stosu (tylko jeśli nie użyto -g, -o, oraz -s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Wyświetla ponownie wyśledzone ślady stosu i pyta o potwierdzenie przez " "wysłaniem ich do bazy błędów." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Ścieżka do zduplikowanej bazy danych sqlite (domyślnie: bez wyszukiwania " "duplikatów)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Nie można użyć -C bez -S. Zatrzymywanie." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Wysłać to jako załączniki? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Prawdopobnie pakiet został zainstalowany nieprawidłowo" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "To nie jest oficjalny pakiet %s. Proszę usunąć wszystkie pakiety pochodzące " "z innych źródeł niż oficjalne i spróbować ponownie." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Niektóre wersje pakietów są już przestarzałe. Proszę zaktualizować " "następujące pakiety i sprawdzić, czy problem nadal występuje:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "nieznany program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Przepraszamy, program %s został niespodziewanie zakończony" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Wystąpił problem w %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Komputer nie posiada wystarczającej ilości wolnej pamięci, aby automatycznie " "przeanalizować problem i zgłosić błąd do twórców programu." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Nieprawidłowe zgłoszenie o błędzie" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Brak dostępu do zgłoszenia o błędzie." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Błąd" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Brak wystarczającej ilości wolnego miejsca na dysku, aby przetworzyć to " "zgłoszenie." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nie określono pakietu" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Należy określić pakiet lub identyfikator procesu. Proszę użyć opcji --help, " "aby uzyskać więcej informacji." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Brak dostępu" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Określony proces nie jest własnością bieżącego użytkownika. Proszę uruchomić " "ten program jako właściciel procesu lub jako administrator." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Nieprawidłowy identyfikator procesu" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" "Określony identyfikator procesu nie powiązany jest z żadnym programem." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Skrypt symptomu %s nie określił pakietu" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Pakiet %s nie istnieje" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Nie można utworzyć raportu" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Uaktualnianie zgłoszenia o błędzie" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Użytkownik nie jest autorem lub subskrybentem tego zgłoszenia o błędzie lub " "zgłoszenie jest duplikatem albo zostało już zamknięte.\n" "\n" "Proszę zgłosić błąd używając narzędzia \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Użytkownik nie jest autorem tego zgłoszenia o błędzie. O wiele łatwiej " "oznaczyć błąd jako duplikat innego, niż przenieść swoje komentarze i " "załączniki do nowego błędu.\n" "\n" "Z tego powodu zaleca się wysłanie nowego zgłoszenia błędu używając narzędzia " "\"apport-bug\" i dodanie komentarza do tego zgłoszenia na temat błędu już " "zgłoszonego.\n" "\n" "Kontynuować?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Nie zebrano dodatkowych informacji." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Jaki rodzaj zgłoszenia ma zostać wysłany?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Nieznany symptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Symptom \"%s\" jest nieznany" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Po zamknięciu tej wiadomości, proszę kliknąć okno programu, aby zgłosić jego " "błąd." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" "Nie udało się określić identyfikatora okna procesu przy użyciu programu xprop" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <numer raportu>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Określa nazwę pakietu" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Dodaje dodatkową etykietę do zgłoszenia. Można użyć kilkukrotnie." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "%prog [opcje] [symptom|pid|scieżka_do_programu|plik .apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Rozpoczyna w trybie zgłaszania błędu. Wymaga opcji --package oraz " "opcjonalnie --pid, lub tylko opcji --pid. Jeśli żadna opcja nie zostanie " "użyta, wyświetlona zostanie lista symptomów." #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Zgłasza błąd programu wskazanego kliknięciem w okno docelowe" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Uruchomia w trybie aktualizacji zgłoszenia błędu. Można użyć z opcją --" "package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Zgłasza błąd dotyczący symptomu (wymuszone jeśli podano nazwę symptomu jako " "parametr)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Określa nazwę pakietu w trybie zgłaszania błędu. Opcjonalne, jeśli użyto " "opcję --pid (wymuszone, jeśli podano nazwę pakietu jako parametr)." #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Określa program w trybie zgłaszania błędu. Dodaje do zgłoszenia większą " "ilość informacji (pid jest podany jako jedyny parametr)." #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Podany pid to numer zawieszonej aplikacji." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Zgłasza błąd działania programu na podstawie określonego pliku .apport lub " ".crash zamiast oczekujących w %s (wymuszone, jeśli określono plik jako " "parametr)." #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Zapisuje informacje o błędzie do pliku, zamiast zgłaszać go. Raport zawarty " "w pliku, może być zgłoszony później z innego komputera." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Wypisuje informacje o wersji" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "Analiza awarii w terminalu za pomocą apport-retrace" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Rozpoczyna sesję gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Rozpoczęcie sesji gdb bez pobierania symboli debugowania" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Aktualizacja %s z pomocą fully symbolic stack trace" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Zgłoszenie błędu dotyczy programu, który nie jest już zainstalowany." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "Problem dotyczy programu %s, który został zmieniony od czasu awarii." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" "To zgłoszenie o błędzie jest uszkodzone i nie może zostać przetworzone." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Zgłoszenie dotyczy niezainstalowanego pakietu." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Wystąpił błąd podczas próby zgłoszenia błędu:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Nie można ustalić pakietu lub nazwy pakietu źródłowego." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Nie można uruchomić przeglądarki internetowej" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Nie można uruchomić przeglądarki internetowej, aby otworzyć %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Proszę wprowadzić dane swojego konta w systemie śledzenia błędów %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problem z siecią" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Nie można połączyć się z bazą danych awarii, proszę sprawdzić połączenie " "internetowe." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Pamięć wyczerpana" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "System nie dysponuje wystarczającą ilością pamięci, aby przetworzyć raport " "błędu." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Nie można zgłosić błędu:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Błąd został już zgłoszony" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ten błąd został już zgłoszony w raporcie wyświetlonym w przeglądarce " "internetowej. Proszę sprawdzić, czy można dodać jakiekolwiek dalsze " "informacje, które mogą być pomocne twórcom programu." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Programiści zostali już poinformowani o tym problemie. Dziękujemy!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Wydarzyło się to podczas poprzedniego stanu wstrzymania i uniemożliwiło " "systemowi poprawne przejście do normalnego stanu pracy." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Wydarzyło się to podczas poprzedniego stanu uśpienia i uniemożliwiło " "systemowi poprawne przejście do normalnego stanu pracy." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Wznawianie zawiesiło się bardzo blisko końca tego procesu i wygląda na " "ukończony poprawnie." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Proszę wcisnąć dowolny klawisz, aby kontynuować..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Co zrobić? Możliwe działania:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Proszę wybrać (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bajtów)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Gdy raport zostanie wysłany, proszę wypełnić formularz\n" "w automatycznie otwartej przeglądarce internetowej." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "Wy&słanie zgłoszenia (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Zbadanie lokalnie" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Wyświetlenie zgłoszenia" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "Pozostawienie pli&ku zgłoszenia w celu późniejszego wysłania lub skopiowania" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Anulowanie i &ignorowanie przyszłych awarii tej wersji programu" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Anulowanie" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Plik zgłoszenia:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Potwierdź" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Błąd: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Zebrane informacje mogą zostać wysłane do twórców, aby ulepszyć\n" "program. To może potrwa kilka minut." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Zebrane informacje są wysyłane do systemu zgłaszania błędów.\n" "To może potrwać kilka minut." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Gotowe" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "brak" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Zaznaczono: %s. Wielokrotny wybór:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Wybór:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Ścieżka do pliku (wciśnięcie klawisza ENTER anuluje działanie):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Plik nie istnieje." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "To jest katalog." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Aby kontynuować, należy otworzyć następujący adres URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Można teraz uruchomić przeglądarkę internetową, albo wkleić ten adres URL do " "przeglądarki na innym komputerze." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Uruchom przeglądarkę" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nie ma oczekujących zgłoszeń awarii. Proszę użyć opcji --help, aby uzyskać " "więcej informacji." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Instalowanie lub aktualizowanie pakietu \"%s\" nie powiodło się." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Raport pełny (zalecany; %s)" #~ msgid "Application problem" #~ msgstr "Problem z programem" #~ msgid "_Send Report" #~ msgstr "_Wyślij zgłoszenie" #~ msgid "Generic error" #~ msgstr "Błąd ogólny" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Po wysłaniu raportu o błędzie proszę wypełnić formularz w automatycznie " #~ "otwartym oknie przeglądarki." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Jeśli wykonywana praca nie była poufna (wpisywanie haseł bądź innych " #~ "prywatnych informacji), można pomóc w usprawnieniu programu zgłaszając " #~ "problem." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "Wy&syłanie pełnego raportu (zalecane; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorowanie przyszłych problemów tej wersji programu" #~ msgid "Restart &Program" #~ msgstr "Uruchom &program ponownie" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "To usunie większe obiekty z raportu. Są bardzo przydatne dla programistów w " #~ "celu naprawienia błędu, jednak mogą być zbyt duże jeśli posiadasz wolne " #~ "połączenie z Internetem." #~ msgid "&Report Problem..." #~ msgstr "&Powiadom o problemie..." #~ msgid "_Report Problem..." #~ msgstr "Powiadom o p_roblemie..." #~ msgid "&Send" #~ msgstr "&Wyślij" #~ msgid "Kernel problem" #~ msgstr "Problem z jądrem systemu" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "To nie jest oryginalny pakiet %s" #~ msgid "Content of the report" #~ msgstr "Zawartość raportu" #~ msgid "Package problem" #~ msgstr "Problem z pakietem" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Jeśli bieżąca praca nie jest jest tajna (wprowadzanie haseł lub innych " #~ "prywatnych danych), to można pomóc w ulepszeniu programu poprzez wysłanie " #~ "raportu o błędzie." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "W systemie wystąpił poważny problem z jądrem." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Wysłanie z&redukowanego raportu (wolne łącze internetowe; %s)" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s nieoczekiwanie zakończył działanie: %s o %s." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Nastąpiło to podczas poprzedniego wstrzymania systemu i uniemożliwiło " #~ "poprawne wznowienie." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Nastąpiło to podczas poprzedniej hibernacji systemu i uniemożliwiło poprawne " #~ "wznowienie." #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "należy wykonać operację lokalną (-s, -g, -o) lub wskazać plik " #~ "uwierzytelnienia (--auth); krótka pomoc dostępna jest z --help" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Można pomóc twórcom programu naprawić pakiet, wysyłając raport opisujący " #~ "problem." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Można pomóc twórcom naprawić problem, zgłaszając go." #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "" #~ "Przepraszamy, nie udało się zainstalować lub zaktualizować pakietu \"%s\"." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Raport zmniejszony (wolne połączenie internetowe; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Wysłać raport o problemie do twórców programu?</b></big>\n" #~ "\n" #~ "Po wysłaniu raportu o błędzie, proszę wypełnić formularz w automatycznie " #~ "otwartym oknie przeglądarki." #~ msgid "Restart _Program" #~ msgstr "_Uruchom program ponownie" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Przepraszamy, nie udało się " #~ "zainstalować lub zaktualizować pakietu \"%s\".</span>" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Przepraszamy, program \"%s\" został niespodziewanie zakończony." #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Przepraszamy, niespodziewanie zakończono %s." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Przepraszamy, program %s został niespodziewanie zakończony." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [OPCJA...] <ZGŁOSZENIE BŁĘDU APPORT | IDENTYFIKATOR BŁĘDU>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "nieprawidłowa ilość parametrów. Proszę użyć opcji --help, aby uzyskać więcej " #~ "informacji." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "System może stać się niestabilny i wymagać ponownego uruchomienia." �����������������������������������������������������������������������������������������������������������apport-2.20.11/po/pt.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000124641�14416106601�011462� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Portuguese translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Portuguese <pt@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: pt\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>A recolher informações sobre o problema</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "A informação está a ser recolhida para tentar ajudar os programadores a " "corrigir o problema relatado." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "A enviar informações do problema" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>A enviar informação sobre o problema</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "A informação recolhida está a ser enviada ao sistema de rastreamento de " "erros. Isto poderá demorar alguns minutos." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Ficheiro de crash do Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(dados binários)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Enviar o relatório do problema aos programadores?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Utilização: %s <relatório> <directório de destino>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Directório de destino existe mas não está vazio" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "A recolher informações sobre o problema" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Relatar um problema..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Reporte um mau funcionamento para os programadores" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "O seu sistema pode ficar instável agora e poderá necessitar de ser " "reiniciado." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Não colocar as novas análises no relatório, mas mostrá-las na saída padrão." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Iniciar uma sessão interativa do gdb com o core dump do relatório (-o " "ignorado; não reescreve o relatório)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Escreve o relatório modificado para um determinado ficheiro ao invés de " "alterar o relatório original" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Remove o core dump do relatório após a regeneração da análise da pilha" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Substituir relatório CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Substituir relatório ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Substituir relatório ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Reconstruir o relatório de informação do pacote" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Caminho para uma ficheiro com informação de autenticação da base de dados de " "erros. Isto é usado ao especificar a ID de erros para enviar os rastreios de " "erros rastreados (apenas se nem -g, -o, ou -s estarem especificados)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Mostrar rastreios de erros rastreados e perguntar por confirmação antes de " "os enviar para a base de dados de erros." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Caminho para a base de dados de duplicados sqlite (por omissão: sem " "verificação de duplicação)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "OK para enviar estes como anexos? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Você tem alguns pacotes desactualizados instalados. Por favor actualize os " "seguintes pacotes e verifique se o problema continua a ocorrer:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programa desconhecido" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Desculpe, o programa %s fechou inesperadamente" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problema em %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "O seu computador não tem memória livre suficiente para analisar " "automáticamente o problema e enviar um relatório para os programadores." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Relatório do problema inválido" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Você não tem autorização para aceder ao relatório deste problema." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Erro" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Não tem espaço livre suficiente no disco para processar este relatório." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nenhum pacote especificado" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Deve especificar um pacote ou um PID. Veja --help para mais informações." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permissão negada" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "O processo especificado não lhe pertence. Por favor execute este programa " "como dono do processo ou como \"root\"." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID inválido" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "O ID de processo especificado não pertence a um programa." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "O pacote %s não existe" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Que tipo de problema quer reportar?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Sintoma desconhecido" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "O sintoma \"%s\" não é conhecido" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opções] [sintoma|pid|pacote|caminho do programa|ficheiro " ".apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Iniciar em modo de classificação de defeitos. Requer --package e um opcional " "--pid, ou somente um --pid. Se nenhum é fornecido, mostra uma lista de " "sintomas conhecidos. (Automático se um único argumento é fornecido)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Submete um relatório de defeito sobre um sintoma. (Automático se um nome de " "sintoma é fornecido como único argumento)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Especifica um nome de pacote em modo --file-bug. Opcional se um --pid é " "especificado. (Automático se um nome de pacote é fornecido como único " "argumento)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Relatar a falha de um arquivo .apport ou .crash fornecido ao invés dos " "arquivos pendentes em %s. (Automático se o arquivo é fornecido como único " "argumento)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Imprime o número da versão do Apport" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Este relatório de problema aplica-se a um programa que já não se encontra " "instalado." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" "Este relatório de problema está danificado e não pode ser processado." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "O relatório pertence a um pacote que não está instalado." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Não foi possível determinar o nome do pacote ou pacote fonte." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Não é possível iniciar o navegador web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Não é possível iniciar o navegador web para abrir %s" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Por favor introduza a informação da sua conta para o sistema de " "gerenciamento de falhas %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problema na rede" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Não é possível estabelecer a ligação à base de dados de falhas, por favor " "verifique a sua ligação à Internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Exaustão da memória" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "O seu sistema não tem memória suficiente para processar o relatório desta " "paragem." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "O problema não pode ser relatado:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problema já conhecido" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Este problema já se encontra relatado como poderá confirmar no navegador " "web. Por favor, verifique se poderá adicionar mais alguma informação que " "possa ser útil aos programadores." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "O processo foi terminado muito perto do final, e pareceu-nos que foi " "completado normalmente." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Prima qualquer tecla para continuar..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "O que gostaria de fazer? As suas opções são:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Por favor escolha (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Depois do relatório do problema ter sido enviado, por favor preencha o " "formulário na\n" "janela do navegador web que é aberta automaticamente." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Enviar relatório (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Ver relatório" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Manter o ficheiro do relatório para enviar depois ou copiar para outro local" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Cancelar e &ignorar futuros erros desta versão da aplicação" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Cancelar" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Ficheiro com o relatório do problema:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirmar" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Erro: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "A informação recolhida pode ser enviada aos programadores de modo a " "melhorar\n" "a aplicação. Isto pode demorar alguns minutos." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "A informação recolhida está a ser enviada ao sistema de rastreio de erros.\n" "Isto pode demorar alguns minutos." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Concluído" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "nenhum" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Seleccionado: %s. Opções:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Escolhas:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Caminho para o ficheiro (Enter para cancelar):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "O ficheiro não existe." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Isto é um directório." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Para continuar, tem que visitar o seguinte URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Pode iniciar um navegador agora, ou copiar este URL para um navegador noutro " "computador." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Iniciar um navegador agora" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nenhum relatório de erro pendente. Tente --help para mais informações." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Pode ajudar os programadores a resolver o problema se o reportar." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "O pacote \"%s\" falhou a instalação ou actualização." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Relatório completo (recomendado; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Enviar relato do problema para os programadores?</b></big>\n" #~ "\n" #~ "Depois do relato do problema ser enviado, por favor preencha o formulário na " #~ "janela que abriu no navegador web." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Se não estava a fazer nada de confidencial (como introduzir senhas ou outra " #~ "informação privada), pode ajudar a melhorar a aplicação enviando o relatório " #~ "do problema." #~ msgid "Application problem" #~ msgstr "Problema na Aplicação" #~ msgid "_Send Report" #~ msgstr "_Enviar Relatório" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Se não estava a fazer nada de confidencial (introduzindo senhas ou outra\n" #~ "informação privada), pode ajudar a melhorar a aplicação se relatar\n" #~ "o problema." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s fechou inesperadamente no dia %s às %s." #~ msgid "Restart _Program" #~ msgstr "Reiniciar o _Programa" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Desculpe, o pacote \"%s\" falhou ao " #~ "instalar ou actualizar.</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Enviar relatório completo (recomendado; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Relatório reduzido (ligação à internet lenta; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorar paragens futuras desta versão do programa" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Enviar relatório &reduzido (ligação à internet lenta; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Isto irá remover alguns elementos grandes do relatório. Estes são muito " #~ "úteis para que os programadores possam depurar o problema, mas podem ser " #~ "demasiado grandes para os poder transferir caso tenha uma ligação lenta à " #~ "internet." #~ msgid "&Report Problem..." #~ msgstr "&Reportar um Problema" #~ msgid "_Report Problem..." #~ msgstr "_Relatar Problema" #~ msgid "Kernel problem" #~ msgstr "Problema no Kernel" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Pode ajudar os programadores a corrigir o pacote informando-os do problema." #~ msgid "Content of the report" #~ msgstr "Conteúdo do relatório" #~ msgid "Package problem" #~ msgstr "Problema no Pacote" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "O sistema encontrou um problema grave do kernel." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Isto ocorreu durante uma suspensão anterior e impediu-o de resumir " #~ "correctamente." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Isto ocorreu durante uma hibernação anterior e impediu-o de resumir " #~ "correctamente." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "O pacote %s não é genuíno" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [opções] <relatório do problema apport | ID do crash>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "número incorrect de argumentos; utilize --help para uma ajuda rápida" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "você precisa de fazer uma operação local (-s, -g, -o) ou fornecer um arquivo " #~ "de autenticação (--auth); ver --help para uma ajuda rápida" �����������������������������������������������������������������������������������������������apport-2.20.11/po/pt_BR.po��������������������������������������������������������������������������0000664�0000000�0000000�00000142201�14416106601�012035� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Portuguese (Brazil) translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Neliton Pereira Jr. <nelitonpjr@gmail.com>\n" "Language-Team: Portuguese (Brazil) <pt_BR@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Cancelar" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Relatório de erros" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Desculpe, ocorreu um erro interno.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Se você observar outros problemas, tente reiniciar o computador." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Envie um relatório de erros para ajudar a corrigir este problema" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorar problemas futuros desta versão do programa" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Mostrar detalhes" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examinar localmente" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Deixe fechado" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continuar" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Coletando informações sobre o problema</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "A informação que está sendo coletada pode ajudar os desenvolvedores a " "corrigir o problema que você relatou." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Enviando informações sobre o problema" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Enviando informações sobre o problema</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "A informação coletada está sendo enviada ao sistema de rastreamento de " "erros. Isto pode levar alguns minutos." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Arquivo Apport falhou" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(dados binários)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Desculpe, o aplicativo %s parou de funcionar inesperadamente." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Desculpe, %s fechou inesperadamente." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Desculpe, %s apresentou um erro interno." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Enviar o relatório do problema aos desenvolvedores?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Enviar" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Forçar fechamento" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Reexecutar" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "O aplicativo %s parou de responder." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "O programa \"%s\" parou de responder." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pacote: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Desculpe, ocorreu um problema durante a instalação do programa." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "O aplicativo %s apresentou um erro interno." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "O aplicativo %s foi fechado inesperadamente." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorar futuros problemas deste tipo" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Ocultar detalhes" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Uso: %s <relatório> <diretório de destino>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Diretório de destino existe e não está vazio." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nome de usuário:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Senha:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Coletando Informações sobre o Problema" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Coletando informações sobre o problema" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "As informações coletadas podem ser enviadas aos desenvolvedores para " "melhorar aplicativo. Isto pode demorar alguns minutos." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Enviando Informações sobre o Problema" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Coletar informações sobre o sistema" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "É necessário autenticar para coletar informações sobre o sistema para o " "relatório deste problema" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Relatórios de problemas do sistema" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Por favor, informe sua senha para acessar os relatórios de problemas dos " "programas do sistema" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Informar um problema..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Relatar um mal-funcionamento aos desenvolvedores" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Consulte o manual para detalhes." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "especificar o nome do arquivo de log produzido pelo valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "reutilizar um diretório para área local criado anteriormente (SDIR) ou, caso " "este não exista, criar um" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "não criar ou reutilizar um diretório de área local para símbolos de " "depuração adicionais, confie apenas nos símbolos de depuração instalados." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "reutilizar um diretório de cache (CDIR) criado previamente ou, caso não " "exista, criar um" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "reportar download/progresso de instalação ao instalar pacotes na área local" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "o executável sendo executado pela ferramenta de checagem de memória do " "valgrind para detecção de vazamento de memória" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Instalar um pacote extra na área local (pode ser especificado múltiplas " "vezes)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Erro: %s não é um executável. Interrompendo." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Seu sistema poderá se tornar instável agora e poderá ser necessário reiniciá-" "lo." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Não colocar as novas análises no relatório, mas mostrá-las na saída padrão." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Iniciar uma sessão interativa do gdb com o core dump do relatório (-o " "ignorado; não reescreve o relatório)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Escrever relatório modificado para determinado arquivo ao invés de alterar o " "relatório original" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Remove o core dump do relatório após a regeneração da análise da pilha" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Sobrescrever os relatórios \"CoreFile\"" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Sobrescrever os relatórios \"ExecutablePath\"" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Sobrescrever os relatórios \"ProcMaps\"" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Reconstruir o relatório de informação do pacote" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Constrói uma área local temporária e baixa/instala os pacotes necessários e " "símbolos de depuração lá; sem esta opção ele supõe que que os pacotes " "necessários e símbolos de depuração já estão instalados no sistema. O " "argumento aponta para o diretório base de configuração do sistema de " "empacotamento; se você especificar \"sistema\", ele usará os arquivos de " "configuração do sistema, mas então será capaz de rastrear somente falhas que " "ocorreram na versão em execução no momento." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Relatar progresso ao baixar/instalar durante instalação do pacotes na área " "local" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Inserir hora antes das mensagens de registro, para operações em lote" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Diretório de cache para pacotes baixados na área local" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Diretório para pacotes descompactados. Execuções futuras assumirão que " "qualquer pacote obtido via download também será extraído nesta área local." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Caminho para um arquivo com as informações de autenticação do banco de dados " "de falhas. Isto é usado quando especificado uma identificação (ID) de erro " "para carregar o rastreamento de pilha refeito (somente se não -g, -o, nem -s " "forem especificadas)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Exibir rastreamentos de pilhas refeitos e pedir confirmação antes de enviá-" "los para o banco de dados de falhas." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Caminho para o banco de dados de duplicados do SQLite (padrão: nenhuma " "verificação duplicação)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Você não pode usar -C sem -S. Interrompendo." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "OK para enviar estes como anexos? [y / n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Este pacote não parece estar instalado corretamente" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Este não é um pacote oficial do %s. Por favor, remova qualquer pacote de " "terceiros e tente novamente." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Você tem alguns pacotes obsoletos instalados. Por favor atualize os pacotes " "a seguir e verifique se o problema continua a ocorrer:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "programa desconhecido" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Desculpe, o programa \"%s\" fechou inesperadamente" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problema em %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Seu computador não possui memória suficiente para analisar automaticamente o " "problema e enviar um relatório aos desenvolvedores." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Relatório do problema inválido" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Você não tem permissão para acessar esse relatório de problema." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Erro" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Não há espaço suficiente em disco para processar este relatório." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nenhum pacote especificado" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Você precisa especificar o pacote ou o PID. Veja --help para mais " "informações." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permissão negada" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "O processo especificado não pertence a você. Por favor, execute este " "programa como dono do processo ou como usuário root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID inválido" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "O ID do processo especificado não pertence a um programa." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "O script de sintoma %s não determinou um pacote afetado." #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "O pacote %s não existe." #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Não foi possível criar o relatório" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Atualizando o relatório de problema" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Você não é o relator ou assinante deste relatório de problema, o relatório " "está duplicado ou já foi fechado.\n" "Por favor, crie um novo relatório utilizando o \"apport-bug\"" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Você não é o relator do presente relatório de problema. É muito mais fácil " "marcar um bug como uma duplicação de outro do que para mover os seus " "comentários e anexos de um novo bug.\n" "\n" "Posteriormente, recomendamos que você relate um bug novo usando o \"apport-" "bug\" e fazer um comentário a este erro sobre o que um arquivo.\n" "\n" "Você realmente deseja continuar?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Nenhuma informação adicional foi coletada." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Que tipo de problema você deseja informar?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Sintoma desconhecido" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "O sintoma \"%s\" não é conhecido." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Depois de fechar esta mensagem, por favor, clique na janela do aplicativo " "para relatar um problema sobre ele." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop falhou ao determinar a ID do processo da janela" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <relato número>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Especificar o nome do pacote." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Adicione um rótulo a mais ao relatório. Pode ser especificado várias vezes." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opções] [sintoma|pid|pacote|localização do programa|arquivo " ".apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Iniciar em modo de classificação de bug. Requer --package e um opcional --" "pid, ou somente um --pid. Se nenhum é fornecido, mostra uma lista de " "sintomas conhecidos. (Automático se um único argumento é fornecido)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Clique na janela como alvo para preencher um relatório de problema." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Iniciar em modo de atualização de erro. Aceita o parâmetro --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Submete um relatório de bug sobre um sintoma. (Automático se um nome de " "sintoma é fornecido como único argumento)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Especifica um nome de pacote em modo --file-bug. Opcional se um --pid é " "especificado. (Automático se um nome de pacote é fornecido como único " "argumento)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Especifique um programa em funcionamento no modo --file-bug. Desta forma, o " "relatório de erro conterá mais informações. (Implícito se pid for dado como " "único argumento.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "O pid fornecido é de uma aplicação pendente." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Relatar a falha de um arquivo .apport ou .crash fornecido ao invés dos " "arquivos pendentes em %s. (Automático se o arquivo é fornecido como único " "argumento)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "No modo de arquivamento de erro, salve as informações coletadas em um " "arquivo em vez de relatá-las. Esse arquivo pode ser reportado mais tarde ou " "de outra máquina." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Imprimir o número da versão do Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Isto irá executar o apport-retrace em uma janela de Terminal para examinar a " "falha." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Executar sessão gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Executar sessão gdb sem baixar símbolos de depuração" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Atualizar %s com rastreamento de pilha totalmente simbólico" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Este problema relatado se aplica a um programa que não está mais instalado." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "O problema aconteceu com o programa %s que mudou desde que o problema " "ocorreu." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Este relatório de erros está danificado e não pode ser processado." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "O relatório pertence a um pacote que não está instalado." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Um erro ocorreu ao tentar processar esse relatório de problema:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Não foi possível determinar o pacote ou nome do pacote fonte." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Não é possível iniciar navegador web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Não é possível iniciar navegador web para abrir %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Por favor digite as informações da sua conta para o sistema de monitoramento " "de falhas %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problema na rede" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Não é possível conectar em uma base de dados quebrada, por favor verifique " "sua conexão com a internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memória exaurida" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Seu sistema não tem memória o suficiente para processar este relatório de " "erro." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "O problema não pode ser relatado:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problema já informado" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Este problema já foi relatado no relatório do erro mostrado no navegador. " "Por favor, verifique se você pode adicionar alguma informação adicional que " "possa ser útil aos desenvolvedores." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "O problema já foi reportado aos desenvolvedores. Obrigado!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "O processo foi terminado muito perto do final, e nos parece que foi " "completado normalmente." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Pressione qualquer tecla para continuar..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "O que você gostaria de fazer? Suas opções são:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Por favor escolha (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Depois que o relatório do problema for enviado, por favor preencha o \n" "formulário que será aberto automaticamente no navegador web." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Enviar relatório (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examinar localmente" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Ver relatório" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Manter arquivo do relatório para enviar mais tarde ou copiar para outro " "lugar." #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Cancelar e &ignorar futuros travamentos dessa versão do programa." #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Cancelar" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Arquivo do relatório de problema:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirmar" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Erro: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "A informação coletada pode ser enviada aos desenvolvedores para melhorar\n" "o aplicativo. Isso pode demorar alguns minutos." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "A informação coletada está sendo enviada ao sistema de rastreamento de " "erros.\n" "Isso pode demorar alguns minutos." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Pronto" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "nenhum" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Selecionado: %s. Multiplas opções:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Escolhas:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Caminho para o arquivo (Enter para cancelar):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "O arquivo não existe." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Isto é um diretório." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Para continuar, você deve visitar a seguinte URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Você pode executar um navegador agora, ou copiar esta URL dentro de um " "navegador em outro computador." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Executar o navegador agora" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nenhum relatório de travamentos pendente. Tente --help para maiores " "informações." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "O pacote \"%s\" falhou na instalação ou atualização." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Relatório completo (recomendado; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Enviar relatório de problemas aos desenvolvedores?</b></big>\n" #~ "\n" #~ "Após o relatório de problemas ser enviado, preencha o formulário no " #~ "navegador que se abrirá automaticamente." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Desculpe, %s fechou inesperadamente" #~ msgid "&Details..." #~ msgstr "&Detalhes..." #~ msgid "_Send Report" #~ msgstr "_Enviar Relatório" #~ msgid "Generic error" #~ msgstr "Erro genérico" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Após o relatório de problemas ser enviado, preencha o formulário no " #~ "navegador que se abrirá automaticamente." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s fechou inesperadamente em %s em %s." #~ msgid "Restart _Program" #~ msgstr "Reiniciar o _Programa" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Desculpe, o pacote \"%s\" falhou na instalação ou atualização." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Desculpe, falha ao instalar ou " #~ "atualizar o pacote \"%s\".</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Enviar relatório completo (recomendado; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Relatório reduzido (baixa conexão de internet; %s)" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Desculpe, %s fechou inesperadamente." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorar travamentos futuros nesta versão do programa" #~ msgid "Restart &Program" #~ msgstr "Reiniciar o &Programa" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Enviar relatório &resumido (conexão lenta com a internet; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Isto removerá alguns itens grandes do relatório. Estes são muito úteis para " #~ "que os desenvolvedores solucionem o problema, mas podem ser demasiadamente " #~ "grandes para que você os envie caso tenha uma conexão lenta com a Internet." #~ msgid "&Report Problem..." #~ msgstr "&Reportar Problema..." #~ msgid "&Send" #~ msgstr "&Enviar" #~ msgid "Kernel problem" #~ msgstr "Problema no kernel" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ignorar travamentos futuros desta versão do programa" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Você pode ajudar os desenvolvedores a reparar o pacote informando o problema." #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Desculpe, o programa %s fechou inesperadamente" #~ msgid "Content of the report" #~ msgstr "Índice do relatório" #~ msgid "Package problem" #~ msgstr "Problema no pacote" #~ msgid "_Report Problem..." #~ msgstr "Info_rmar Problema..." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Seu sistema encontrou um grave problema no kernel" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Você pode ajudar os desenvolvedores a corrigir o problema, reportando-o." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Isto ocorreu durante uma suspensão anterior e preveniu um reinício correto." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Isto ocorreu durante uma hibernação anterior e preveniu um reinício correto." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [opções] <relatório de problema apport | id da falha>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "você precisa fazer uma operação local (-s, -g, -o) ou fornecer um arquivo de " #~ "autenticação (--auth); veja --help para uma ajuda rápida" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "número de argumentos incorretos; use --help para uma ajuda rápida" #~ msgid "Application problem" #~ msgstr "Problema no aplicativo" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Se você não estava fazendo nada confidencial (inserindo senhas ou a outra " #~ "informação privada), você pode ajudar a melhorar este aplicativo relatando o " #~ "problema ocorrido." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Se você não estava fazendo nada confidencial (digitando senhas ou outras\n" #~ "informações privadas), você pode ajudar a melhorar o aplicativo relatando\n" #~ "o problema." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Este não é um pacote %s genuíno" #~ msgid "Send this data to the developers?" #~ msgstr "Deseja enviar estes dados para os desenvolvedores?" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Desculpe, o aplicativo %s fechou inesperadamente." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "O seu sistema pode se tornar instável agora e pode precisar ser reiniciado." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ro.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000140720�14416106601�011453� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Romanian translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-09-13 13:17+0000\n" "Last-Translator: Meriuță Cornel <meriutacornel@neacornel.eu>\n" "Language-Team: Romanian <ro@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ro\n" "100 > 19) || ((n % 100 == 0) && (n != 0))) ? 2: 1))\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Anulează" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "În regulă" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Raport eroare" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>A apărut o eroare internă.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Dacă întâmpinați alte probleme, încercați să reporniți calculatorul." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" "Trimiteți un raport de eroare pentru a ajuta la rezolvarea acestei probleme" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" "Ignoră viitoarele probleme apărute în versiunea curentă a programului" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Arată detalii" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Examinează local" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Păstrează închis" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Continuă" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Se colecteză informații despre problemă</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Se colectează informații care pot ajuta programatorii să remedieze problema " "pe care o raportați." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Se încarcă informațiile despre problemă" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Se trimit informațiile despre problemă</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Informațiile colectate sunt transmise sistemului de urmărire a " "defecțiunilor. Această operațiune poate dura câteva minute." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Fișier despre o avarie Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(date binare)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Ne pare rău, aplicația %s s-a oprit pe neașteptate." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "%s s-a închis neașteptat." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "%s a produs o eroare internă." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Trimiteți raportul problemei la programatori?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Trimite" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Închidere forțată" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Repornire" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Aplicația %s nu mai răspunde." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Programul \"%s\" nu mai răspunde." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Pachet: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "A apărut o problemă la instalarea programului." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Aplicația %s a întâmpinat o eroare internă." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Aplicația %s s-a închis neașteptat." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignoră viitoarele probleme de acest tip" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Ascunde detaliile" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Utilizare: %s <raport> <dosar destinație>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Dosarul destinație există și nu este gol." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Nume utilizator:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Parolă" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Se colectează informațiile problemei" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Se colectează informațiile problemei" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Informațiile colectate pot fi trimise dezvoltatorilor pentru a îmbunătății " "aplicația. Acest lucru poate dura câteva minute." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Se încarcă informațiile problemei" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Colectare informații despre sistem" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Pentru a se colecta informații despre sistem necesare raportării problemei " "trebuie să vă autentificați" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Rapoarte despre probleme de sistem" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Pentru a accesa rapoartele despre problemele cu programele sistemului " "trebuie să vă introduceți parola" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Raportează o problemă..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Raportează o eroare programatorilor" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Pentru detalii consultați paginile manualului." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "specificați numele fișierului jurnal produs de valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "reutilizează un dosar izolat (sandbox) creat anterior (SDIR) sau, dacă nu " "există, creați unul" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "nu se creează sau reutilizează un dosar izolat (sandbox) pentru simboluri " "suplimentare pentru depanare ci se bazează numai pe simbolurile pentru " "depanare instalate." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "reutilizează un dosar cache (CDIR) creat anterior sau, dacă nu există, " "creați unul" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "raportează progresul pentru descărcare/instalare la instalarea pachetelor în " "dosarul izolat" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "executabilul care este rulat sub utilitarul valgrind pentru verificarea " "pierderilor de memorie" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Instalează un pachet suplimentar în zona protejată (poate fi specificat de " "mai multe ori)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Eroare: %s nu este un fișier executabil. Se oprește." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Sistemul poate deveni instabil după acest pas și s-ar putea să trebuiască " "repornit." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Nu include noile trasări în raport, ci scrie-le la stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Pornește o sesiune gdb interactivă cu fișierul core dump din raport (-o " "ignorat; nu va rescrie raportul)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Scrie raportul modificat într-un fișier dat în loc de a schimba raportul " "original" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Șterge core-dump-ul din raport după regenerarea trasării stivei apelurilor" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Înlocuiește CoreFile din raport" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Înlocuiește ExecutablePath din raport" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Înlocuiește ProcMaps din raport" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Reconstruiește informațiile despre pachet din raport" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Construiește o zonă protejată temporară și descarcă/instalează aici " "pachetele necesare și simbolurile pentru depanare; fără această opțiune se " "presupune că pachetele necesare și simbolurile pentru depanare sunt " "instalate deja în sistem. Argumentul indică dosarul de bază al configurației " "sistemului de pachete; dacă specificați „sistem”, vor fi folosite fișierele " "de configurare ale sistemului, însă în acest mod vor putea fi urmărite numai " "erorile apărute în versiunea curentă." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Arată progresul descărcării/instalării pentru instalarea pachetelor în zona " "protejată" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Adaugă marcaje de timp mesajelor din jurnale, pentru operații în bloc" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Dosarul cache pentru pachetele descărcate în zona protejată" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Dosarul pentru pachete nedespachetate. La executările viitoare se va " "presupune că orice pachet deja descărcat este, de asemenea, extras în acest " "dosar izolat." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Calea către un fișier cu informații de autentificare pentru baza de date " "despre avarii. Aceasta este folosită când se specifică un ID al unei avarii " "pentru a trimite trasările de stivă de apeluri retrasate (doar dacă niciuna " "dintre -g, -o și -s nu au fost specificate)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Afișează trasările de stivă de apeluri retrasate și cere confirmarea înainte " "de a le trimite în baza de date despre avarii." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Calea către baza de date sqlite duplicată (implicit: fără verificarea " "duplicatelor)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Nu puteți utiliza -C fără -S. Se oprește." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Se trimit aceste atașamente? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Se pare că acest pachet nu este instalat corect" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Acesta nu este un pachet oficial %s. Ștergeți toate pachetele de la terți și " "încercați din nou." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Aveți instalate versiuni vechi ale unor pachete. Vă rugăm să actualizați " "următoarele pachete și să verificați dacă problema continuă să apară:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "program necunoscut" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Ne cerem scuze, programul „%s” s-a întrerupt într-un mod neașteptat" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problemă în %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Calculatorul dumneavoastră nu dispune de suficientă memorie pentru a analiza " "automat problema și a trimite un raport despre eroare programatorilor." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Raport de probleme nevalid" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Accesul la raport nu vă este permis." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Eroare" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Nu există suficient spațiu disponibil pe disc pentru a procesa acest raport." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nu s-a specificat nici un pachet" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Trebuie să specificați un pachet sau un PID. Pentru mai multe informații " "consultați --help." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Permisiune refuzată" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Procesul selectat nu aparține acestui utilizator. Executați acest program în " "calitate de proprietar al procesului sau de utilizator „root”." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID nevalid" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Identificatorul de proces specificat nu aparține unui program." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Scriptul pentru simptome %s, nu a detectat niciun pachet afectat" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Pachetul %s nu există" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Raportul nu poate fi creat" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Se actualizează raportul de probleme" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Nu sunteți creatorul sau abonatul acestui raport de probleme, sau raportul " "este un duplicat, sau este deja închis.\n" "\n" "Creați un nou raport, utilizând „apport-bug”." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Nu sunteți raportorul acestui raport de problemă. Este mult mai ușor de " "marcat o eroare ca duplicat al alteia decât să fie mutate comentariile și " "atașamentele dvs. la o nouă eroare.\n" "\n" "De aceea, vă recomandăm să înregistrați un raport de eroare nou, utilizând " "„apport-bug”, și să faceți un comentariu în acest raport de eroare despre " "cea pe care o înregistrați.\n" "\n" "Sigur doriți să continuați?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Nu au fost colectate informații suplimentare." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Ce fel de problemă doriți să raportați?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Simptom necunoscut" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Simptomul „%s” nu este cunoscut." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "După închiderea acestui mesaj faceți clic pe fereastra unei aplicații pentru " "a raporta o problemă despre ea." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop nu a reușit să determine ID-ul de proces al ferestrei" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <număr raport>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Specificați numele pachetului." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Adăugă o etichetă suplimentară raportului. Pot fi specificate mai multe " "etichete." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [opțiuni] [fișier simptom|pid|pachet|program cale|.apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Pornește în modul de trimitere a unui raport de defecțiune. Necesită --" "package și un --pid opțional sau doar un --pid. Dacă niciunul dintre ele nu " "este prezent, atunci afișează o listă de simptome cunoscute. (Implicit, dacă " "se transmite un singur argument)." #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Clic pe o fereastră pentru a raporta o problemă despre aceasta." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Pornește în modul de actualizare a defecțiunii. Poți lua un --package " "opțional." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Trimite un raport de defecțiune despre un simptom. (Implicit, dacă numele " "simptomului este dat ca singurul argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Specifică un nume de pachet în modul --file-bug. Este opțional dacă un --pid " "este specificat. (Implicit dacă numele pachetului este dat ca singurul " "argument)." #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Specificați un program care rulează în modul --file-bug. În cazul în care " "acest lucru este specificat, raportul de eroare va conține mai multe " "informații. (Opțiune implicită dacă PID este unicul argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "PID-ul furnizat identifică o aplicație care nu mai răspunde." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Raportează avaria din fișierul .apport sau .crash și nu a celor în așteptare " "din %s. (Implicit, dacă fișierul este dat ca singurul argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "În modul de raportare de probleme, salvează informațiile colectate într-un " "fișier, în loc de a le raporta. Acest fișier poate fi apoi raportat mai " "târziu de pe o altă mașină." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Tipărește numărul de versiune al Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Această comandă va lansa apport-retrace într-o fereastră terminal pentru a " "examina eroarea." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Rulare sesiune gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Rulați o sesiune gdb fără descărcarea simbolurilor pentru depanare" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Actualizați %s cu urmărirea întregii stive" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Acest raport se referă la un program care nu mai este instalat." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Problema a apărut la programul %s, care a fost modificat față de momentul " "apariției erorii." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Acest raport de probleme este deteriorat și nu poate fi procesat." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Raportul aparține de un pachet care nu este instalat." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "A apărut o eroare în încercarea de a procesa raportarea acestei probleme:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Numele pachetului sau al pachetului sursă nu a putut fi determinat." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Nu s-a putut porni navigatorul web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Nu s-a putut porni navigatorul web pentru a deschide %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Introduceți informațiile despre cont pentru sistemul de monitorizare a " "defecțiunilor %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problemă de rețea" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Nu s-a reușit conexiunea la baza de date despre avarii, verificați " "conexiunea la internet." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Memorie consumată" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Sistemul nu dispune de suficientă memorie pentru a procesa acest raport de " "avarie." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Problema nu poate fi raportată:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problemă deja cunoscută" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Această problemă a fost deja raportată în raportul de defecțiune afișat în " "navigatorul web. Verificați dacă puteți adăuga informații suplimentare care " "ar putea fi utile programatorilor." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Această problemă a fost raportată deja dezvoltatorilor. Vă mulțumim!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Procesul de revenire s-a blocat aproape de final și a părut că s-a terminat " "normal." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Pentru a continua, apăsați orice tastă..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Ce doriți să faceți? Opțiunile sunt:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Vă rugăm să alegeți (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i octeți)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "După trimiterea raportului problemei, vă rugăm să completați\n" "formularul din pagina deschisă automat." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Trimite raport (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Examinează local" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Vizualizare raport" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Păstrează fișierul de raport pentru a fi trimis ulterior sau copiat în altă " "parte" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Renunță și &ignoră viitoarele avarii ale acestei versiuni a programului" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Anulează" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Fișier raport problemă:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Confirmă" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Eroare: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Informațiile colectate pot fi trimise programatorilor pentru a îmbunătăți\n" "aplicația. Este posibil să dureze câteva minute." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Informațiile colectate sunt trimise sistemului de urmărire a defecțiunilor.\n" "Este posibil să dureze câteva minute." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Gata" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "niciunul" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Selectat: %s. Variante multiple:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Variante:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Calea către fișier (apăsați pe Enter pentru a anula):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Fișierul nu există." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Acesta este un dosar." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Pentru a continua, trebuie să accesați următorul URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Puteți lansa un navigator acum sau copiați acest URL într-un navigator pe " "alt calculator." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Lansează un navigator" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nu există nici un raport de avarie în curs. Pentru mai multe informații, " "consultați --help." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Pachetul „%s” a eșuat la instalare sau actualizare." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Raport complet (recomandat; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Trimite înştiinţare cu problema către programatorii " #~ "aplicaţiei?</b></big>\n" #~ "\n" #~ "După trimiterea înştiinţării. vă rugăm să completaţi formularul care se va " #~ "deschide automat." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Dacă nu făceaţi nimic confidenţial (introduceaţi parole sau alte date " #~ "private), puteţi contribui la îmbunătăţirea aplicaţiei prin raportarea " #~ "problemei." #~ msgid "Application problem" #~ msgstr "Problemă în aplicaţie" #~ msgid "_Send Report" #~ msgstr "_Trimite raportul" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s s-a închis neașteptat în data de %s la %s." #~ msgid "Restart _Program" #~ msgstr "Reporneşte _Aplicaţia" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Din păcate, pachetul \"%s\" nu a fost " #~ "instalat sau actualizat.</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Trimite rapot complet (recomandat; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Raport redus (conexiune lentă la Internet; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignoră erori viitoare în această versiune a programului" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Trimite raport &redus (pentru conexiuni slabe la Internet; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Aceasta va îndepărta părţi substanţiale din raport. Aceste informaţii sunt " #~ "utile dezvoltatorilor pentru a depana problema, dar pot fi prea mari pentru " #~ "a le trimite dacă conexiunea la internet e lentă." #~ msgid "&Report Problem..." #~ msgstr "&Raportați problema..." #~ msgid "_Report Problem..." #~ msgstr "_Raportează Problema" #~ msgid "Kernel problem" #~ msgstr "Problemă cu nucleul (kernel-ul)" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Puteţi să-i ajutaţi pe dezvoltatori să repare pachetul prin raportarea " #~ "problemei." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Acest pachet %s nu este autentic" #~ msgid "Content of the report" #~ msgstr "Conţinutul raportului" #~ msgid "Package problem" #~ msgstr "Problemă cu pachetul" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Puteți ajuta dezvoltatori prin raportarea ei." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "În cazul în care nu efectuați operații confidențiale (introducere de parolă " #~ "sau de alte\n" #~ "informații private), puteți ajuta la îmbunătățirea aplicației prin " #~ "raportarea problemei." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "A apărut o problemă gravă în nucleul sistemului." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Aceasta s-a întâmplat într-o operație anterioară de suspendare și a " #~ "împiedicat revenirea corectă." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Aceasta s-a întâmplat într-o operație anterioară de hibernare și a " #~ "împiedicat revenirea corectă." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "" #~ "%prog [opțiuni] <raport problemă apport | identificator terminare " #~ "neașteptată>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "trebuie să efectuați o operație locală (-s, -g, -o) sau să oferiți un fișier " #~ "de autentificare (--auth); citiți --help pentru un ajutor scurt" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "număr de argument incorect; folosiți --help pentru un ajutor scurt" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Aplicația %s s-a închis neașteptat." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Sistemul dumneavoastră s-ar putea să fi devenit instabil şi s-ar putea să " #~ "fiţi nevoiţi să-l reporniţi." ������������������������������������������������apport-2.20.11/po/ru.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000161347�14416106601�011471� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Russian translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Russian <ru@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ru\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Отмена" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Отчёт о неполадке" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Извините, возникла внутренняя ошибка.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "При возникновении этой неполадки в дальнейшем попробуйте перезапустить " "компьютер." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Отправить отчёт о неполадке в систему учёта ошибок" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Игнорировать будущие сбои в этой версии программы" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Показать подробности" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Локальная проверка" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Оставить закрытым" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Продолжить" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Сбор информации о неполадке</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Производится сбор информации, которая может помочь разработчикам исправить " "эту ошибку." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Передача информации о неполадке" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Передача сведений о неполадке</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Собранные данные пересылаются в систему учёта ошибок. Это может занять " "несколько минут." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Файл отчета Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(двоичные данные)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Извините, приложение %s внезапно завершилось." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Извините, %s было непредвиденно закрыто." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Извините, возникла внутренняя ошибка %s." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Отправить отчёт об ошибке разработчикам?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Отправить" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Принудительное завершение" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Перезапустить" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Приложение «%s» перестало отвечать." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Программа «%s» перестала отвечать." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Пакет: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" "Извините, обнаружена неполадка во время установки программного обеспечения." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "В приложении %s произошла внутренняя ошибка." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Приложение %s внезапно закрылось." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Игнорировать этот тип неполадок в дальнейшем" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Скрыть подробности" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Использование: %s <отчет> <папка назначения>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Папка назначения существует и не пуста." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Имя пользователя:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Пароль:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Сбор информации о неполадке" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Сбор информации о проблеме" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Собранную информацию можно отправить разработчикам чтобы улучшить " "приложение. Это может занять несколько минут." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Передача информации о неполадке" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Собрать сведения о системе" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Чтобы отправить отчёт о неполадке и собрать сведения о системе, необходимо " "выполнить аутентификацию" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Отчёты о системных ошибках" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Введите свой пароль для доступа к отчётам об ошибках в системных программах" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Сообщить о неполадке..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Сообщить о недоработке разработчикам" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Смотрите подробности в man-странице." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "укажите имя log-файла для valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "использовать ранее созданный каталог песочницы (SDIR) или создать его если " "он не существует" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "не создавать и не использовать каталог песочницы для дополнительных символов " "отладки, а полагаться лишь на установленные символы отладки." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "использовать ранее созданный каталог кэша (CDIR) или создать его если он не " "существует" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "показывать прогресс загрузки/установки во время установки пакетов в песочницу" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "исполняемый файл, который запускается под контролем valgrind memcheck для " "определения утечек памяти" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Установить во временную среду дополнительный пакет (может указываться " "несколько раз)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Ошибка: %s — не исполняемый файл. Остановка." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "Система может стать нестабильной, возможно потребуется перезагрузка." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Не добавлять новые трассировки в отчет, а посылать на стандартный вывод." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Запустить интерактивный сеанс gdb с дампом ядра из отчёта (-o игнорируется; " "отчёт не перезаписывается)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Сохранить измененный отчет в файл вместо изменения оригинального отчета" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Удалить дамп ядра из отчёта после восстановления трассировки стека" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Заменить CoreFile в отчёте" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Заменить ExecutablePath в отчёте" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Заменить ProcMaps в отчёте" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Заново построить информацию о пакетах в отчёте" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Создать временную среду, затем загрузить/установить в неё необходимые пакеты " "и отладочные символы; без этого параметра предполагается, что необходимые " "пакеты и отладочные символы в системе уже установлены. Аргумент указывает на " "базовую папку конфигурации системы пакетов; если вы указали \"system\", " "будут использоваться системные файлы конфигурации, но только в случае " "обнаружения аварийных ситуаций, произошедших в выпуске системы, работающем в " "данный момент." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Сообщать о ходе выполнения загрузки/установки пакетов во временную среду" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Добавлять временные отметки до сообщений в журнале, для групповых операций" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Создавать и использовать сторонние репозитории из источников, указанных в " "отчётах" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Папка для сохранения пакетов, загружаемых во временную среду" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Директория для распаковки пакетов. При последующих запусках все уже " "загруженные пакеты будут распаковываться в это изолированное окружение." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Путь к файлу с информацией о проверке подлинности базы сбоев. Используется " "при указании ID сбоя для отправки трассировок стека (только когда -g, -o или " "-s не указаны)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Отобразить трассировки и запросить подтверждение перед их отправкой в базу " "данных сбоев." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Путь к дублирующей базе данных sqlite (по умолчанию: без проверки дубликатов)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Нельзя использовать -C без -S. Остановка." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Отправить эти приложения? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Возможно, этот пакет установлен неправильно" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Этот пакет не является официальным пакетом %s. Пожалуйста, удалите все " "сторонние пакеты и попробуйте снова." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "В вашей системе установлены устаревшие версии некоторых пакетов. Обновите " "следующие пакеты и проверьте, осталась ли проблема:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "неизвестная программа" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Извините, программа %s аварийно завершила свою работу" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Неполадка в %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "В вашем компьютере недостаточно свободной памяти, чтобы автоматически " "проанализировать неполадку и отправить отчет разработчикам." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Неверный отчёт об ошибке" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "У вас нет доступа к отчёту о неполадке." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Ошибка" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Недостаточно места на диске для обработки этого отчёта." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Не указан пакет" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Необходимо указать пакет или PID. Запустите программу с ключом --help для " "получения дополнительной информации." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "В доступе отказано" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Указанный процесс запущен другим пользователем. Запустите эту программу с " "правами владельца процесса или администратора системы." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Неверный PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Указанный PID принадлежит другому процессу." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Симптоматический скрипт %s не может определить затронутый пакет" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Пакет %s не существует" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Невозможно создать отчет" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Обновление отчета о проблеме" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Вы не являетесь отправителем или получателем отчета об этой проблеме, " "возможно отчет уже существует или уже был закрыт." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Вы не являетесь создателем данного отчета. Намного проще, отметить ошибку " "как уже существующую, чем создавать свои комментарии и вкладывать их в новую " "ошибку.\n" "\n" "Впоследствии, мы рекомендуем вам подать новое сообщение об ошибке " "использовании \"ошибка apport\", и сделать замечание об этой ошибке в том же " "файле.\n" "\n" "Вы действительно хотите продолжить?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Дополнительная информация не была собрана." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "О какой проблеме вы бы хотели сообщить?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Неизвестный симптом" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Симптом «%s» не известен" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "После закрытия этого сообщения, пожалуйста, щелкните по окну приложения, " "чтобы сообщить о проблеме." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop не удалось определить ID процесса этого окна" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <номер отчета>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Задайте имя пакета." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Добавить дополнительный тег в отчет. Может быть указан несколько раз." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [параметры] [признак|pid|пакет|путь до программы|.apport/.crash файл]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Запуск в режиме отправки отчёта об ошибке. Требует параметр --package и " "необязательный --pid, или только --pid. Если параметры не переданы, " "отображает список известных симптомов. (Применяется, когда передан " "единственный аргумент.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Щелкните по целевому окну для заполнения отчёта о проблеме." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Запустить в режиме обновления ошибки. Может принимать дополнительный ключ --" "package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Отправить отчёт об ошибке с симптомом. (Применяется, когда название симптома " "передано в качестве единственного параметра.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Указать имя пакета в режиме --file-bug. Необязательно, если указан --pid. " "(Применяется, когда имя пакета передано в качестве единственного параметра.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Указывает запущенную программу при работе в режиме --file-bug. При этом " "отчет будет содержать больше информации. (Подразумевается, что pid — " "единственный указанный аргумент.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Указанный идентификатор принадлежит процессу, который не отвечает." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Отправить данные о сбое из заданного файла .apport или .crash вместо " "ожидаемых в %s. (Применяется, когда файл передан в качестве единственного " "параметра.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "При работе в режиме отправки отчета, сохраняет информацию в файле вместо ее " "отправки. Этот файл можно будет отправить позднее или с другого компьютера." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Напечатать номер версии Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Будет произведён запуск «apport-retrace» в окне терминала для выполнения " "проверки аварийного завершения работы." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Запустить сеанс gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Запустить сеанс gdb, не выполняя загрузку отладочных символов" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Обновить %s с полным отслеживанием символического стека" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Этот отчет о проблеме относится к программе, которая не установлена." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Неполадка произошла с программой %s, в которую были внесены изменения с " "момента её аварийного завершения работы." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Этот отчёт о неполадке повреждён и не может быть обработан." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Отчёт относится к пакету, который не был установлен." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Произошла ошибка при попытке обработать это сообщение о неполадке:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Не удалось определить имя пакета или имя пакета с исходным кодом." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Не удалось запустить веб-браузер" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Не удалось запустить веб-браузер, чтобы открыть %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Пожалуйста, введите данные вашей учетной записи в системе учёта ошибок %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Неполадка с сетью" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Не удается подключиться к базе данных по сбоям, пожалуйста, проверьте " "подключение к Интернету." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Недостаток памяти" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "В системе недостаточно памяти для обработки этого отчёта об ошибке." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Не удаётся сообщить о неполадке:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "О неполадке уже известно" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Об этой неполадке уже известно. Существующий отчёт о ней открыт в вашем " "браузере. Пожалуйста, проверьте, можете ли вы добавить в него иную полезную " "информацию, которая могла бы помочь разработчикам." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" "Сообщение о неисправности отправлено разработчикам. Спасибо за помощь!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Это произошло во время предыдущего ждущего режима, что не даёт системе " "правильно выйти из него." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Это произошло во время предыдущего спящего режима, что не даёт системе " "правильно выйти из него." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Процесс создания отчёта завис очень близко к завершению; для нормального " "завершения он должен был появиться." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Чтобы продолжить, нажмите любую клавишу..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Что вы хотите сделать? Возможные варианты:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Пожалуйста, выберите (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i байт)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "После того, как отчёт будет отправлен, заполните форму\n" "в автоматически открывшемся окне браузера." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Отправить отчёт (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Локальная проверка" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Просмотреть отчёт" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Сохранить файл отчёта для последующей отправки или копирования куда-либо" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Отменить и &игнорировать будущие сбои в этой версии программы" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "О&тменить" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Файл отчёта о проблеме:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Подтвердить" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Ошибка: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Собранная информация может быть направлена разработчикам\n" "для улучшения приложения. Это может занять несколько минут." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Собранная информация направляется в систему отслеживания ошибок.\n" "Это может занять несколько минут." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Готово" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "пусто" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Выбрано: %s. Несколько вариантов:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Выбор:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Путь к файлу (Enter — отмена):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Файл не существует." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Это — директория." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Чтобы продолжить, вы должны пройти по следующему адресу:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Теперь вы можете открыть браузер или скопировать URL в браузер на другой " "компьютер." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Запустить браузер" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "Нет ожидающих сообщений о сбоях. Попробуйте ключ --help." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Не удалось установить или обновить пакет «%s»." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Полный отчёт (рекомендуется; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Переслать разработчикам отчёт о неполадке?</b></big>\n" #~ "\n" #~ "После того, как отчёт будет выслан, заполните, пожалуйста, форму, которая " #~ "автоматически откроется в браузере." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Если вы не вводили секретную информацию (пароли или личные данные), вы " #~ "можете помочь нам улучшить программу, отправив отчёт о неполадке." #~ msgid "Application problem" #~ msgstr "Неполадка в приложении" #~ msgid "_Send Report" #~ msgstr "_Отправить отчёт" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Если вы не вводили секретную информацию (пароли или личные данные),\n" #~ "вы можете помочь нам улучшить программу, отправив отчёт о неполадке." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s неожиданно закрылась %s в %s." #~ msgid "Restart _Program" #~ msgstr "Перезапустить _программу" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Извините, не удалось установить или " #~ "обновить пакет «%s».</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Послать полный отчёт (рекомендуется; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Краткая версия отчёта (при медленном соединении с Интернетом; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Игнорировать будущие сбои в этой версии программы" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Некоторые большие части вашего сообщения будут удалены. Они очень полезны " #~ "разработчикам при устранении неполадки, но могут долго отправляться, если у " #~ "вас медленное соединение с Интернетом." #~ msgid "&Report Problem..." #~ msgstr "&Сообщить о проблеме..." #~ msgid "_Report Problem..." #~ msgstr "_Сообщить о неполадке..." #~ msgid "Kernel problem" #~ msgstr "Неполадка в ядре" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Вы можете помочь разработчикам, отправив отчёт о выявленной неполадке." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Это не оригинальный пакет %s" #~ msgid "Content of the report" #~ msgstr "Данные отчёта" #~ msgid "Package problem" #~ msgstr "Неполадка с пакетом" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "В вашей системе обнаружена серьёзная неисправность ядра." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Вы можете помочь разработчикам исправить эту проблему, отправив о ней отчёт." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "" #~ "Послать &сокращенную версию отчета (медленное соединение с Интернетом; %s)" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Это случилось во время предыдущего перехода в ждущий режим и препятствовало " #~ "восстановлению системы." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Это случилось во время предыдущего засыпания и препятствовало восстановлению " #~ "системы." #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "неверное число аргументов; наберите --help для краткой справки" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [параметры] <отчёт о проблеме apport | ID сбоя>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "вы можете выполнять локальные операции (-s, -g, -o), иначе предоставьте файл " #~ "проверки подлинности (--auth); наберите --help для краткой справки" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Извините, приложение %s непредвиденно закрылось." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "Система может быть нестабильна; возможно, потребуется перезагрузка." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/sc.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077426�14416106601�011454� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sardinian translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Sardinian <sc@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: sc\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/sd.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077450�14416106601�011452� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sindhi translation for apport # Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2018. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2018-11-11 06:23+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Sindhi <sd@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "مسعلي ۾ %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/se.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000077750�14416106601�011456� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Northern Sami translation for apport # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2012. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2012-08-17 12:37+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Northern Sami <se@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: se\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Čájet bienaid" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Joatkke" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binára dáhtaid)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Sádde" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Páhkka: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Čiega &bienaid" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Geavaheaddjinamma:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Beassansátni:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Meattáhus" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Ii beasa deikke" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i stávvala)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "G&askkalduhtte" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Nanne" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Meattáhus: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Geargan" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ii mihkkige" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ������������������������apport-2.20.11/po/shn.po����������������������������������������������������������������������������0000664�0000000�0000000�00000077416�14416106601�011636� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Shan translation for apport # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2012. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2012-01-18 13:50+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Shan <shn@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: shn\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/si.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000101041�14416106601�011437� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sinhalese translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: Janith Sampath Bandara <sbslive@gmail.com>\n" "Language-Team: Sinhalese <si@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "විස්තර පෙන්වන්න" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "වසා තබන්න" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "ඉදිරියට යන්න" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(ද්ව්‍යංගී දත්ත)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "යවන්න" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "යළි දියත් කරන්න" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "පැකේජය: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "තොරතුරු සඟවන්න" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "පරිශීලක නාමය:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "මුරපදය:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "නොදන්නා වැඩසටහන" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "සමාවෙන්න, \"%s\" වැඩසටහන අනපේක්ෂිතව අවසන්විය" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s හි ගැටලුවක්" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "අවලංගු ගැටලුවක් වාර්තාවිනි" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "දෝෂය" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "අවසර දීමට නොහැක" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "සත්‍ය %s ඇසුරුමක් නොමැත" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/sk.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000123735�14416106601�011457� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Slovak translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Andrej Tobola <andrej.tobola+linux@gmail.com>\n" "Language-Team: Slovak <sk@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: sk\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Chybové hlásenie" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Prepáčte, nastala vnútorná chyba.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Ak zaznamenáte ďalšie problémy, skúste reštartovať počítač." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Odoslať chybové hlásenie. Pomôžete tým vyriešiť tento problém." #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorovať budúce problémy tejto verzie programu" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Zobraziť podrobnosti" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Ponechať zatvorené" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Pokračovať" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Zhromažďujú sa informácie o probléme</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Zhromažďujú sa údaje pre vývojárov potrebné na opravu vami ohláseného " "problému." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Nahrávam informácie o probléme" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Nahrávajú sa informácie o probléme</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Zhromaždené informácie budú odoslané do systému pre sledovanie chýb, čo môže " "chvíľu trvať." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binárne dáta)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Prepáčte, aplikácia %s bola neočakávane ukončená." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Prepáčte, %s bol neočakávane ukončený." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Prepáčte, %s zaznamenal vnútornú chybu." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Odoslať hlásenie o chybe vývojárom?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Odoslať" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Znova spustiť" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Aplikácia %s neodpovedá." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Program „%s“ neodpovedá." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Balík: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Prepáčte, pri inštalácii softvéru sa vyskytla chyba." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "V aplikácii %s došlo k chybe." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Aplikácia %s bola neočakávane ukončená." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorovať budúce problémy tohto typu" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Skryť podrobnosti" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Získavajú sa údaje o probléme" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Získať informácie o systéme" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Pre získanie systémových informácií potrebných k ohláseniu tohto problému je " "požadované overenie totožnosti" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Ohlásiť problém..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Oznámiť nefunkčnosť vývojárom" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Vyzerá to tak, že tento balík nie je nainštalovaný korektne" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Toto nie je oficiálny %s balík. Prosím, odstráňte všetky balíky tretích " "strán a skúste to znovu." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Máte nainštalovanú zastaralú verziu balíka. Prosím, aktualizujte nasledujúce " "balíky a skontrolujte, či problém pretrváva:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "neznámy program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Prepáčte, program \"%s\" neočakávane skončil" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problém v %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Váš počítač nemá dosť voľnej pamäte na automatickú analýzu problému a " "poslanie správy vývojárom." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Neplatná správa problému" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Nemáte povolený prístup k tejto správe o probléme." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Chyba" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Nie je dostatok voľného miesta na disku na spracovanie tejto správy." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nebol určený žiadny balík" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Je potrebné určiť balík alebo PID. Pozrite --help pre viac informácií." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Prístup odmietnutý" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Nemáte dosah na označený proces. Prosím spustite program ako jeho vlastník, " "alebo ako superpoužívateľ." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Neplatné PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Špecifikované ID procesu nepatrí k programu." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Balík %s neexistuje" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Aký druh problému chcete nahlásiť?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Neznámy príznak" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Príznak \"%s\" nie je známy" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Pre nahlásenie problému s aplikáciou kliknite, prosím, po zavretí tejto " "správy na okno aplikácie." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop nedokázal zistiť identifikátor procesu okna" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Zadajte názov balíka." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Pridať k hláseniu značku navyše. Môže byť zadaná viackrát." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Začnite v móde ohlásenia chyby. Je potrebný --package a voliteľný --pid, " "alebo len --pid. Ak nie je zadaný ani jeden z nich, zobrazí sa zoznam " "známych príznakov. (Predpokladané ak je zadaný len jeden argument.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Kliknite na okno ktoré bude cieľom pre vyplnenia hlásenia o chybe." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Vytvorte chybovú správu o príznaku. (Predpokladané ak je zadané ako jediný " "argument meno príznaku.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Zadajte meno balíka v móde --file-bug. Je to voliteľné ak je zadaný --pid. " "(Predpokladané ak je zadané ako jediný argument meno.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Špecifikujte spustený program v režime --file-bug. S týmto upresnením bude " "hlásenie obsahovať viac informácií. (Ak je číslo procesu uvedené ako jediný " "argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Poskytnutý pid je zamrznutá aplikácia." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Nahláste pád z daného .apport alebo .crash súboru namieste prebiehajúcich v " "%s. (Predpokladané ak je zadaný ako jediný argument súbor.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Vytlačiť verziu Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Spustiť gdb reláciu" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Spustiť gdb reláciu bez sťahovania ladiacich symbolov" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Táto chybová správa sa vzťahuje na program, ktorý už nie je nainštalovaný." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Táto správa je poškodená a nie je možné ju spracovať." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Správa patrí k balíku, ktorý nie je nainštalovaný." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Nastala chyba počas spracovania hlásenia o chybe:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Nedá sa zistiť balík alebo zdrojový názov balíka." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Nepodarilo sa spustiť internetový prehliadač" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Nepodarilo sa spustiť internetový prehliadač pre otvorenie %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Prosím zadajte vaše informácie o prihlasovacom účte pre Systém sledovanie " "chýb %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problém siete" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Nie je možné sa pripojiť do databázy pádov, prosím skontrolujte vaše " "internetové pripojenie." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Vyčerpanie pamäte" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "Váš systém nemá dostatočnú pamäť na spracovanie chybovej správy." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Problém nemohol byť ohlásený:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problém je už známy" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Tento problém už bol nahlásený v chybovej správe zobrazenej v internetovom " "prehliadači. Skontrolujte prosím, či môžete doplniť ďaľšie informácie, ktoré " "môžu byť nápomocné pre vývojárov." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Tento problém bol už nahlásený vývojárom. Ďakujeme!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Počas obnovy sa spracovanie zastavilo teste pri konci a preto sa zdá že " "skončilo normálne." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Pokračujte stlačením ľubovoľného klávesu..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Čo by ste radi urobili? Vaše možnosti sú:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Prosím zvoľte (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Po odoslaní hlásenia o chybe, prosím vyplňte formulár v\n" "automaticky otvorenom webovom prehliadači" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Odoslať hlásenie (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Pozrieť hlásenie" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Uchovať súbor s hlásením pre neskoršie odoslanie alebo kopírovanie na iné " "miesto" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Zrušiť a &ignorovať budúce pády tejto verzie programu" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Zrušiť" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Súbor hlásenia problému:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Potvrdiť" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Chyba: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Zhromaždené informácie môžu byť odoslané vývojárom na zlepšenie\n" "aplikácie. Môže to trvať pár minút." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Zhromaždené informácie sa posielajú systému na sledovanie chýb.\n" "Môže to trvať pár minút." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Dokončené" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "žiadny" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Zvolené: %s. Viaceré voľby:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Voľby:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Cesta k súboru (Enter pre zrušenie):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Súbor neexistuje." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Toto je adresár." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Aby ste pokračovali, musíte navštíviť následujúci URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Môžete teraz spustiť prehliadač, alebo skopírovať URL do prehliadača na inom " "počítači." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Okamžite spustiť prehliadač" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Žiadne zostávajúce chybové hlásenia. Skúste --help pre viac informácií." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Zostaviť hlásenie (odporúča sa; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Odoslať správu o probléme vývojárom?</b></big>\n" #~ "\n" #~ "Po odoslaní správy o probléme, vyplňte prosím formulár v automaticky " #~ "otvorenom webovom prehliadači." #~ msgid "Application problem" #~ msgstr "Problém aplikácie" #~ msgid "_Send Report" #~ msgstr "_Poslať hlásenie" #~ msgid "Restart _Program" #~ msgstr "Reštartovať _program" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Prepáčte, zlyhala inštalácia alebo " #~ "aktualizácia balíka \"%s\".</span>" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Zmenšené hlásenie (pomalé internetové pripojenie; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorovať budúce pády tejto verzie programu" #~ msgid "_Report Problem..." #~ msgstr "_Ohlásiť problém..." #~ msgid "Kernel problem" #~ msgstr "Problém jadra" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "Môžete pomôcť vývojárom opraviť balík ohlásením problému." #~ msgid "Content of the report" #~ msgstr "Obsah hlásenia" #~ msgid "Package problem" #~ msgstr "Problém balíka" #~ msgid "&Report Problem..." #~ msgstr "&Nahlásiť problém..." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Odoslať &skrátené hlásenie (pomalé internetové pripojenie; %s)" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Toto nie je autentický %s balík" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Ak ste nevykonávali niečo dôverné (zadávanie hesiel alebo iných\n" #~ "súkromných informácií), môžete pomôcť zlepšiť aplikáciu nahlásením\n" #~ "problému." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s sa nečakane ukončil %s o %s" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Váš systém zaznamenal vážny problém s jadrom." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Balík \"%s\" sa nepodarilo nainštalovať alebo aktualizovať." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Môžete pomôcť vývojárom odstrániť problém jeho ohlásením." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Poslať celé hlásenie (odporúčané; %s)" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Toto sa vyskytlo počas predošlé uspávania a zabránilo to správnej obnove." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Toto sa vyskytlo počas predošlej hybernácii a zabránilo to správnej obnove." #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Toto vymaže veľké veci zo správy. Tieto sú veľmi užitočné pre vývojárov na " #~ "debugovanie problému, ale pokiaľ máte pomalé pripojenie na internet, môže to " #~ "byť pre vás priveľa na odoslanie." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "V prípade, že nerobíte nič dôverné (zadávanie hesla alebo iných osobných " #~ "údajov), môžete pomôcť vylepšiť aplikáciu nahlásením problému." �����������������������������������apport-2.20.11/po/sl.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000136562�14416106601�011462� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Slovenian translation for apport # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2007. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Andrej Znidarsic <andrej.znidarsic@gmail.com>\n" "Language-Team: Slovenian <sl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: sl\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Prekliči" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "V redu" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Poročilo o sesutju" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Oprostite, prišlo je do notranje napake.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Če opazite nadaljnje težave, poskusite s ponovnim zagonom računalnika." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Pošlji poročilo o napaki za pomoč pri odpravi te težave" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Prezri nadaljnje težave te različice programa" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Pokaži podrobnosti" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Preuči krajevno" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Pusti zaprto" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Nadaljuj" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Zbiranje podatkov o nastali težavi</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Zbirajo se podatki, ki bi lahko pomagali razvijalcem popraviti težavo, ki " "ste jo prijavili." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Pošiljajo se podatki o težavi" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Pošiljanje podatkov o nastali težavi</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Zbrani podatki se pošiljajo na sistem sledenja hroščev. To utegne trajati " "nekaj minut." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Datoteka poročila o sesutju" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binarni podatki)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Oprostite, program %s se je nepričakovano končal." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Oprostite, program %s se je nepričakovano zaprl." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Oprostite, v programu %s je prišlo do notranje napake." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Ali želite poročilo o napaki poslati razvijalcem?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Pošlji" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Prisili končanje" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Znova zaženi" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Program %s se ne odziva." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Program \"%s\" se ne odziva." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paket: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Med nameščanjem programa je prišlo do napake." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "V programu %s je prišlo do notranje napake." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Program %s se je nepričakovano zaprl." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Prezri prihodnje težave te vrste" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Skrij podrobnosti" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Uporaba: %s <poročilo> <ciljna mapa>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Ciljna mapa ne obstaja ali pa ni prazna." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Uporabniško ime:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Geslo:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Zbiranje podrobnosti o težavi" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Zbiranje podatkov o napaki" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Zbrane podatke lahko pošljete razvijalcem za izboljšanje programa. To lahko " "vzame nekaj minut." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Pošiljanje podrobnosti o težavah" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Zberi podatke o sistemu" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Za zbiranje podatkov o sistemu za to poročilo o težavi je zahtevana overitev." #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Poročila o sistemskih težavah" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Vnesite svoje geslo za dostop do poročil o težavah s sistemskimi programi" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Pošlji poročilo o težavi ..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Poročajte napačno delovanje razvijalcem" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Oglejte si stran priročnika za podrobnosti." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "določite ime datoteke dnevnika, ki ga je ustvaril valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "ponovno uporabi prejšnje ustvarjeno mapo sandbox (SDIR) ali jo ustvari, če " "še ne obstaja" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "ne ustvari ali ponovno uporabi mapo sandobox za dodatne simbole " "razhroščevanja ampak se zanašj le na nameščene simbole razhroščevanja." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "ponovno uporabi prejšnje ustvarjen predpomnilnik mape (CDIR) ali jo ustvari, " "če še ne obstaja" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "poroča napredek prejema /namestitve ob namestitvi paketa v sandbox" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "izvedljiva datoteka, ki teče pod orodjem pregledovalnikom pomnilnika " "valgrind za zaznavanje puščanja pomnilnika" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "Namesti dodaten paket v peskovnik (lahko je določeno večkrat)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Napaka: %s ni izvedljiva datoteka. Ustavljanje." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Vaš sistem lahko postane nestabilen in ga bo morda treba znova zagnati." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Ne dajaj novih sledi v poročilo temveč jih izpiši v stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Prični vzajemno sejo gdb z izpisom jedra poročila (-o prezrt; ne prepiše " "poročila)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Zapiše spremenjeno poročilo v dano datoteko namesto spreminjanja izvirnega" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Odstrani izpis jedra iz poročila po ponovni izgradnji sledi sklada" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Prepiši jedrno datoteko poročila" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Prepiši izvedljivo pot poročila" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Prepiši ProcMap poročila" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Znova izgradi podatke o paketih v poročilu" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Izgradi začasen peskovnik in prejme/namesti zahtevane pakete in " "razhroščevalne simbole. Brez možnosti predpostavi, da so nujni paketi in " "razhroščevalni simboli že nameščeni na sistemu. Argument kaže na osnovno " "mapo nastavite sistema pakiranja. V primeru da določite \"system\", bo " "uporabil sistemske nastavitvene datoteke, vendar boste lahko ponovno sledili " "sesutjem, ki se zgodijo na trenutno izvajajoči se izdaji." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Poročaj o napredku prejema/namestitve med nameščanje paketov v peskovnik" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Pripni časovne žige sporočilom dnevnika za paketna opravila" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Ustvarite in uporabite skladišča tretjih oseb iz izvorov določenih v " "poročilih" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Mapa predpomnilnika za pakete prejete v peskovnik" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Imenik nepakiranih paketov. Naslednji zagoni programa bodo zagotovili, da se " "bodo vsi prejeti paketi razširjali v ta peskovnik." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Pot do datoteke s podatki o overitvi podatkovne zbirke sesutij. To je " "uporabljeno ob navedbi ID sesutja za pošiljanje znova načrtanih sledi " "skladov (samo, če -g, -o in -s niso navedeni)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Prikaži znova narčrtane sledi sklada in vprašaj za potrditev pred njihovim " "pošiljanjem v podatkovno zbirko sesutij." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Pot do podatkovne zbirke dvojnika sqlite (privzeto: ni preverjanja za " "dvojnike)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Ne morete uporabiti -C brez -S. Ustavljanje." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Ali je pošiljanje teh prilog vredu? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Videti je, da ta paket ni nameščen pravilno" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "To ni uradni paket %s. Odstranite morebitni paket tretjih oseb in poskusite " "znova." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Nameščene imate nekatere zastarele različice paketov. Nadgradite naslednje " "pakete in preverite, če se težava še vedno pojavlja:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "neznam program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Program \"%s\" se je nepričakovano zaprl" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Težava v %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Vaš računalnik nima dovolj prostega pomnilnika za samodejno preučevanje " "težave in pošiljanje poročila razvijalcem." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Neveljavno poročilo o napaki" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Dostop do poročila o napaki je bil zavrnjen." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Napaka" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Na disku ni dovolj prostora za obdelavo tega poročila." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Naveden ni noben paket" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "Navesti morate paket ali PID. Oglejte si --help za več podrobnosti." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Dovoljenje je zavrnjeno" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Navedeno opravilo ne pripada vam. Zaženite ta program kot lastnik opravila " "ali kot skrbnik." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Neveljaven PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Naveden ID opravila ne pripada programu." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Skript simptoma %s ni zaznal prizadetega paketa" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Paket %s ne obstaja" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Ni mogoče ustvariti poročila" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Posodabljanje poročila o težavi" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Niste poročevalec ali naročnik tega poročila o težavi, ali pa je poročilo " "podvojeno ali že zaključeno.\n" "\n" "Ustvarite novo poročilo z uporabo \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Niste poročevalec ali naročnik tega poročila o težavi. Veliko lažje je " "označiti hrošča kot podvojenega, kot pa premikati vaše opombe in priloge v " "novega hrošča.\n" "\n" "Zato vam priporočamo, da ustvarite novo poročilo o hroščču z uporabo " "\"apport-bug\", in opozorite nanj v prvotnem poročilu.\n" "\n" "Ali želite resnično nadaljevati?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Dodatni podatki niso bili pridobljeni." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "O kakšni vrsti težave bi radi poročali?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Neznan simptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Simptom \"%s\" ni znan." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Po zaprtju tega sporočila kliknite na okno programa za poročanje težav o " "njem." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop ni uspelo določevanje ID-ja opravila okna" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <številka poročila>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Navedite ime paketa." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Doda dodatno oznako poročilu. Določite jo lahko večkrat." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [možnosti] [simptom|pid|paket|pot programa|datoteka .apport/.crash]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Zaganjanje v načinu prijave napake. To zahteva --package in izbirno tudi --" "pdi, ali pa samo --pid. Če ne podate nobenega izmed naštetih, bo prikazan " "seznam znanih simptomov. (Privzeto, ko je podan samo en argument)." #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Kliknite na okno kot cilj za izpolnjevanje poročila o težavi." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Zaženi v načinu posodabljanja hroščev. Lahko dodate izbiren parameter --" "package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Vloži prijavo hrošča o simptomu. (predpostavljeno, če je ime simptoma dano " "kot edini argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "V načinu --file-bug navedite ime paketa. Če je --pid podan, to ni obvezno. " "(Privzeto, ko je kot edini argument podano ime paketa)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Določi delujoč program v načinu --file-bug. V primeru da je to navedeno, bo " "poročilo o hrošču vsebovalo več podrobnosti (predpostavljeno, če je pid dan " "kot edini argument.)." #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Program s posredovanom pid-jem se je obesil." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Poroča o sesutju iz dane datoteke .apport ali .crah namesto iz čakajočih v " "%s. (Predpostavljeno, če je datoteka dana kot edini argument)." #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "V načinu poročanja hrošča zbrane podatke shrani v datoteko namesto " "poročanja. To datoteko lahko uporabite za poročanje kasneje z druge naprave." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Izpiši številko različice Apporta." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "To bo v terminalu zagnalo apport-retrace za preučevanje sesutja." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Poženi sejo gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Poženi sejo gdb brez prejemanja razhroščevalnih simbolov" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Posodobi %s s polno simbolično sledjo sklicev" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "To poročilo o težavi se nanaša na program, ki ni več nameščen." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "Težava se je zgodila s programom %s, ki se je od sesutja spremenil." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Poročilo o težavi je poškodovano, zato njegova obdelava ni mogoča." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Poročilo pripada nenameščenemu paketu." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Med poskusom obdelave tega poročila o hrošču je prišlo do težave:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Ni bilo mogoče določiti imena paketa ali izvornega paketa." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Spletnega brskalnika ni mogoče zagnati" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Spletni brskalnik ne more odpreti %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Vpišite podatke svojega računa za sledilni sistem hroščev %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Težava z omrežjem" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Ni se mogoče povezati z zbirko podatkov o napakah. Preverite svojo " "internetno povezavo." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Pomnilnik je zapolnjen" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Vašemu sistemu je zmanjkalo pomnilnika za obdelavo poročila o sesutju." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "O težavi ni mogoče poročati:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Težava je že znana" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Poročilo o tej težavi je bilo že poslano v poročilu o hrošču, ki je bilo " "prikazano v spletnem brskalniku. Preverite, če lahko dodate še kakšen " "podatek, ki bi lahko pomagal razvijalcem." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ta težava je bila že poročana razvijalcem. Hvala vam!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "To se je zgodilo med prejšnjim stanjem v pripravljenost in je preprečilo, da " "bi se sistem normalno zagnal." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "To se je zgodilo med prejšnjim stanjem mirovanja in je preprečilo, da bi se " "sistem normalno zagnal." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Obdelava nadaljevanja se je obesila blizu konca in bo videti, kot da se je " "pravilno zaključila." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Pritisnite katerokoli tipko za nadaljevanje ..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Kaj želite storiti? Vaše možnosti so:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Prosimo izberite (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bajtov)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Ko bo poročilo o težavi poslano, izpolnite obrazec v\n" "samodejno odprtem spletnem brskalniku." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Pošlji poročilo (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Preuči krajevno" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Ogled poročila" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "O&bdrži datoteko o poročilu za kasnejše pošiljanje ali kopiranje kam drugam" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "P&rekliči in prezri nadaljnja sesutja te različice programa" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Prekliči" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Datoteka s poročilom o napaki:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "Po&trdi" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Napaka: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Zbrani podatki lahko pošljete razvijalcem za izboljšanje\n" "programa. To lahko traja nekaj minut." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Zbrani podatki se pošiljajo v sledilni sistem hroščev.\n" "To lahko traja nekaj minut." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Končano" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "brez" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Izbrano: %s. Več izbir:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Izbire:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Pot do datoteke (Enter za preklic):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Datoteka ne obstaja." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "To je mapa." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Za nadaljevanje morate obiskati naslednji URL:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Sedaj lahko zaženete svoj spletni brskalnik ali prekopirate URL v brskalnik " "na drugem računalniku." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Zaženi spletni brskalnik zdaj" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Brez čakajočih poročil o sesutju. Za več podrobnosti poizkusite s --help." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Dokončaj poročilo (priporočeno; %s)" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Če niste delali česa zaupnega (npr. vnašali gesla ali drugih zasebnih " #~ "podatkov), lahko pomagate pri izpopolnjevanju programa tako, da pošljete " #~ "poročilo o nastali težavi." #~ msgid "_Send Report" #~ msgstr "_Pošlji poročilo" #~ msgid "Restart _Program" #~ msgstr "Ponovno zaženi _program" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Skrčeno poročilo (počasna internetna povezava; %s)" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Spreglej bodoča sesutja te različice programa" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "S tem se iz poročila odstrani določene zajetne elemente, ki so sicer zelo " #~ "uporabni za odpravljanje napak, a bi utegnili biti preveliki za pošiljanje " #~ "po internetu pri počasni povezavi." #~ msgid "_Report Problem..." #~ msgstr "_Pošlji poročilo..." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Razvijalcem lahko pomagate pri popravilu paketa ter jim pošljete poročilo o " #~ "nastali težavi." #~ msgid "Content of the report" #~ msgstr "Vsebina poročila" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "To ni pristen %s paket" #~ msgid "&Report Problem..." #~ msgstr "&Poročaj o težavi..." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Če niste počeli ničesar zaupnega (vpisovali gesel ali drugih\n" #~ "zasebnih podatkov), nam lahko pomagate izboljšati program\n" #~ "tako, da nam pošljete poročilo o težavi." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s se je nepričakovano zaprl dne %s ob %s." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Namestitev ali nadgradnja paketa \"%s\" ni uspela." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "Pošlji &popolno poročilo (priporočeno; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Pošlji &skrajšano poročilo (počasna internetna povezava; %s)" #~ msgid "Package problem" #~ msgstr "Težava s paketom" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Sistem je naletel na resno težavo v jedru." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Razvijalcem lahko pomagate odpraviti težavo tako, da ga prijavite." #~ msgid "Kernel problem" #~ msgstr "Težava z jedrom" #~ msgid "Application problem" #~ msgstr "Težava programa" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Žal se paketu \"%s\" ni uspelo " #~ "namestiti ali nadgraditi.</span>" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Pošljem poročilo o težavi razvijalcem?></big>\n" #~ "\n" #~ "Potem, ko je bilo poročilo to težavi poslano, vas prosimo, da izpolnite " #~ "obrazev v samodejno odprtem spletnem brskalniku." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [možnosti] <apport poročilo o težavi | ID sesutja>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "izvesti morate krajevno opravilo (-s, -g, -o) ali zagotoviti datoteko " #~ "overitve (--auth); oglejte si --help za kratko pomoč" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "nepravilno število argumentov; uporabite --help za kratko pomoč" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "To se je pripetilo med predhodnim stanjem pripravljenosti in je preprečilo " #~ "pravilno nadaljevanje." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "To se je pripetilo med predhodnim mirovanjem in je preprečilo pravilno " #~ "nadaljevanje." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Oprostite, program %s se je nepričakovano zaprl." #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Program \"%s\" se je nepričakovano zaprl." #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Program %s se je nepričakovano zaprl." #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Paket \"%s\" se ni namestil ali nadgradil." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Program %s se je nepričakovano zaprl" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Vaš sistem bo zdaj morda postal nestabilen in bo mogoče potreboval ponovni " #~ "zagon." ����������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/sq.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000141360�14416106601�011457� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Albanian translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Vilson Gjeci <vilsongjeci@gmail.com>\n" "Language-Team: Albanian <sq@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:34+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: sq\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Anulo" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "OK" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Raporti i gabimit" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Na vjen keq, ndodhi një gabim i brendshëm.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Nëse vini re probleme të mëtejshme, provoni të rindizni kompjuterin." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" "Dërgoni një raport gabimi për të ndihmuar në rregullimin e këtij problemi" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Shpërfilli problemet e mëtejshme të këtij versioni të programit" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Shfaq Detajet" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Shqyrtoje lokalisht" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Lëre të Mbyllur" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Vazhdo" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Po mbledhim informacion rreth problemit</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Një informacion po mblidhet i cili mund të ndihmojë zhvilluesit të zgjidhin " "problemin që ju raportuat." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Duke ngarkuar informacionin e problemit" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Po ngarkojmë informacionin e problemit</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Informacioni i mbledhur po i dërgohet sistemit të gjurmimit të gabimeve. kjo " "mund të zgjasë disa minuta." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Skedar i defekteve të Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(të dhëna binare)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Më vjen keq, programi %s ndali papritmas." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Na vjen keq, %s u mbyll papritmas." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Na vjen keq, %s ka hasur në një gabim të brendshëm." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Tò dërgojë një raport rreth problemit krijuesve?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Dërgo" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Detyro Mbylljen" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Rinise" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Programi %s nuk po përgjigjet më." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Programi \"%s\" nuk po përgjigjet më." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paketa: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Na vjen keq, ndodhi një problem gjatë instalimit të programit." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Programi %s ka hasur në një gabim të brendshëm." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Programi %s u mbyll papritmas." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Shpërfilli problemet e mëvonshme të këtij lloji" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Fshihi Detajet" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Përdorimi: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Direktoria e destinacionit ekziston dhe nuk është bosh." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Emri i Përdoruesit:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Fjalëkalimi:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Duke Mbledhur Informacion për Problemin" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Duke mbledhur informacion për problemin" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Informacioni i mbledhur mund t'iu dërgohet krijuesve për të përmirësuar " "programin. Kjo mund të zgjasë disa minuta." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Duke Ngarkuar Informacionin e Problemit" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Mblidh informacion rreth sistemit" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Kërkohet identifikimi për të mbledhur informacion të sistemit për raportimin " "e këtij problemi" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Raported e problemeve të sistemit" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Ju lutem vendosni fjalëkalimin tuaj që të keni akses në raportet e " "problemeve të programeve së sistemit." #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Raporto një problem..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Raportoni një mosfunksionim tek krijuesit" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Shiko faqen e manualit për detaje." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "specifikoni emrin e skedarit prodhuar nga valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "përdorni përsëri një direktori sanbox (SDIR) që është përdorur më pare. Nëse " "nuk ekziston, krijo një të re" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "mos krijo apo ripërdor asnjë direktori sandbox per simbolet rregulluese " "shtesë, por mbështetu ne simbolet rregulluese të instaluara" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "ripërdor një direktori cache (CDIR) të përdorur më pare, ose, në qoftë se " "nuk ekziston, krijo një" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "trego progresin e shkarkimit/instalimit kur instalohen paketa në sandbox" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "elementi i ekzekutueshëm që perdoret nën valgrind's memcheck tool për " "zbulimin e rrjedhjes së memorjes" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Instalo një paketë shtesë në kutinë e rërës (mund të specifikohet shumë herë)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Gabim: %s nuk është i ekzekutueshëm. Po ndalohet." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Sistemi juaj mund të bëhet i paqëndrueshëm tani dhe mund të ketë nevojë të " "rindizet." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Mos vendosni gjurmë të reja në raport, por shkruajini ato në stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Nisni një seksion interaktiv gdb me bazën e raportueshme (-o ignored; nuk e " "rishkruan raportin)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Shkruajeni raportin e modifikuar në skedarin e dhënë dhe mos modifikoni " "raportin origjinal." #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Hiqeni core dump nga raporti pas rigjenerimit të gjurmës së stack" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Mbishkruaje CoreFile të raportit" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Mbishkruaje ExecutablePath të raportit" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Mbishkruaj ProcMaps të raportit" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Rindërto informacionin e paketave të raportit" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Ndërto një kuti rëre të përkohshme dhe shkarko/instalo paketat e nevojshme " "dhe simbolet e korrigjimit të gabimeve aty; pa këtë opsion ai kujton se " "paketat e nevojshme dhe simbolet e korrigjimit të gabimeve janë instaluar " "tashmë në sistem. AArgumenti ju drejton në drejtorinë e bazës së sistemit të " "konfigurimit të paketave; nëse ju specifikoni \"system\", ai do të përdorë " "skedarët e konfigurimit të sistemit, por më pas do të jetë në gjendje vetëm " "të gjurmojë dëmitmet që kanë ndodhur në këtë version të programit." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Raporto progresin e shkarkimit/instalimit kur instalon paketat në kutinë e " "rërës" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Vendosu gjurmë kohore mesazheve në hyrje, për veprime në grupe" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Krijo dhe përdor magazina të palëve të treta nga origjinat e specifikuara në " "raporte" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Drejtoria e ruajtjes së paketave të shkarkuara në kutinë e rërës" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Drejtoria për paketa të pa paketuara. Nisjet e mëvonshme do të supozojnë se " "çdo paketë e shkarkuar tashmë shtë gjithashtu e ekstraktuar në këtë kuti " "rëre." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Shtegu për tek skedari me databazën e dëmtimit në identifikimin e " "informacionit. Kjo përdoret kur specifikoni një ID të rënies në ngarkimin e " "gjurmëve të tërhequra (vetëm nëse as -g, -o apo -s nuk janë specifikuar)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Shfaq gjurmët e tërhequra të bllokimit dhe kërko për konfirmim para se ti " "dërgosh ato në databazën e dëmtimit." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Shtegu për tek databaza e dyfishuar sqlite (nuk ka kërkim për të dyfishta)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "S'mund të përdorni -C pa -S. Po ndalohet." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "OK për t'i dërguar këtosi bashkangjitje? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Kjo paketë duket se nuk është instaluar në mënyrë korrekte" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Kjo nuk është një paketë zyrtare %s. Ju lutemi të hqini çdo paketë të palëve " "të treta dhe ta provoni përsëri." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Ju keni një version të vjetër të instaluar të paketës. Ju lutemi " "përditësojini paketat që vijojnë dhe kontrolloni nëse problemi vazhdon të " "ndodhë:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "program i panjohur" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Na vjen keq, programi \"%s\" u mbyll papritur" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problem në %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Kompjuteri juaj nuk ka kujtesë të lirë sa duhet për të analizuar " "automatikisht problemin dhe për t'i dërguar një raport zhvilluesve." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Raportim i pavlefshëm i problemit" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Juve nuk ju lejohet të hyni në këtë raportim të problemit." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Gabim" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Nuk ka hapësirë të disponueshme disku sa duhet për të përpunuar këtë raport." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Nuk është përcaktuar asnjë paketë" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Juve ju nevojitet të specifikoni një paketë apo një PID. Shikoni --help për " "më tepër informacion." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Leja ju mohohet" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Proçesi i përcaktuar nuk ju përket juve. Ju lutemi niseni këtë program si " "posedues i tij ose si rrënjë." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID i Pavlefshëm" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "ID-ja e specifikuar e proçesit nuk i përket një programi." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Skripti i simptomës %s nuk përcaktoi një paketë të ndikuar" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Paketa %s nuk ekziston" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Nuk mund të krijoj raport" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Duke përditësuar raportin e problemit" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Ju nuk jeni raportues apo nënshkrues i raportimit të këtij problemi, ose " "raporti është i dyzuar ose tashmë i mbyllur.\n" "\n" "Ju lutemi të krijoni një raport të ri duke përdorur \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Ju nuk jeni raportuesi i këtij problemi. Është shumë më e lehtë të shënoni " "një defekt si i dyfishtë i një tjetri se sa të lëvizni komentet dhe " "bashkangjitjet në njl gabim të ri.\n" "\n" "Si rrjedhojë, ne ju rekomandojmë të raportoni një gabim të ri duke përdorur " "\"apport-bug\" dhe të bëni një koment në këtë gabim për atë që po shënoni.\n" "\n" "Dëshironi me të vërtetë të vazhdoni?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Nuk u mblodh informacion shtesë." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Çfarë lloj problemi dëshironi të raportoni?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Simptomë e panjohur" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Simptoma \"%s\" nuk njihet." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Pasi ta mbyllni këtë mesazh ju lutemi të klikoni në dritaren e programit për " "të raportuar një problem të lidhur me të." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop dështoi në përcaktimin e ID të proçesit të dritares" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Specifiko emrin e paketës." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Shtojini një etiketë më shumë raportit. Mund të specifikohet shumë herë." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Niseni defektin në mënyrën e raportimit. Kërkon --package dhe si opsion --" "pid, ose vetëm një --pid. Nëse asnjë nuk jepet, shfaq një listë të " "simptomave të njohura. (Vendoset nëse jepet vetëm një argument.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" "Kliko një ditare si shënjestër për të krijuar një raport rreth problemit." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Nise në mënyrë të përditësimit të gabimit. Mund të marrë një --paketë " "opsionale." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Krijoni një raport defekti për një simptomë. (Vendoset nëse emri i simptomës " "jepet vetëm si një argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Specifikoni një emër pakete tek mënyra --file-bug. Kjo është opsionale nëse " "specifikohet një --pid. (Emri i paketës së vendosur jepet vetëm si një " "argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Specifiko një program të nisur në mënyrën --file-bug. Nëse ky specifikohet, " "informacioni i gabimit do të përmbajë më tepër informacion. (Implikohet nëse " "pid është dhënë vetëm si argument)." #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Pid i dhënë është një program në pritje." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Raporto gabimin nga skedari i dhënë .apport ose .crash në vend të atyre që " "presin në %s. (Vendoset nëse skedari është dhënë vetëm si argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Në mënyrën e përshkrimit të një gabimi, ruajeni informacionin e mbledhur në " "një skedar në vend që ta raportoni atë. Ky skedar mund të raportohet më vonë " "nga një makinë tjetër." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Printo numrin e versionit të Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Kjo do të nise apport-retrace në një dritare terminali për të shqyrtuar " "gabimin." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Nis seksionin gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Nis seksionin gdb pa shkarkuar simbolet e gabimeve" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Përditëso %s pa gjurmë të plota simbolike" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Ky problem ka të bëjë me një program i cili nuk është më i instaluar." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Problemi ndodhi me programin %s i cili ndryshoi që kur ndodhi gabimi." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Ky raportim i problemit është i dëmtuar dhe nuk mund të shqyrtohet." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Raporti i përket një pakete që nuk është instaluar." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "Ndodhi një gabim gjatë përpjekjes për të përpunuar këtë raport të problemit:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Nuk mund të përcaktojmë emrin e paketës apo të burimit të saj." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Nuk jemi në gjendje të nisim shfletuesin e Internetit" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" "Nuk jemi në gjendje të nisim shfletuesin e Internetit për të hapur %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "ju lutemi të vendosni informacionin e llogarisë suaj për sistemin e " "gjurmimit të gabimeve %s." #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Problem i rrjetit" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Nuk mund të lidhemi me databazën e dëmtimeve, ju lutemi të kontrolloni " "lidhjen tuaj me Internetin." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Kujtesa u lodh" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Sistemi juaj nuk ka kujtesë sa duhet për të proçeduar këtë raport dëmtimi." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Problemi nuk mund të raportohet:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problemi i njohur tashmë" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ky problem është raportuar tashmë në raportimin e problemeve të shfaqura në " "shfletuesin e Internetit. Ju lutemi kontrolloni nëse mund të shtoni " "infromacion të mëtejshëm i cili mund të ndihmojë krijuesit." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ky problem ju është raportuar tashmë zhvilluesve. Faleminderit!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Kjo ndodhi gjatë një pezullimi të mëparshëm dhe e pengoi sistemin që të " "rinisë siç duhet." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Kjo ndodhi gjatë një hibernimi të mëparshëm dhe e pengoi sistemin që të nisë " "siç duhet." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Proçesi i rinisjes u bllokua shumë afër fundit dhe siç duket është " "kompletuar normalisht." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Shtypni çdo buton për të vazhduar..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Çfarë do të donit të bënit? Opsionet tuaja janë:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Ju lutemi zgjidhni (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i bytes)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Pasi raporti i problemit të jetë dërguar, ju lutemi mbushni formularin tek\n" "Shfletuesi i Internetit që hapet automatikisht." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Dërgoni raportin (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Shqyrtoje lokalisht" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Shfaqeni raportin" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Mbajeni skedarin e raportit për ta dërguar më vonë ose për ta kopjuar diku " "tjetër" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Anullo dhe &injoro prishjet e mëvonshme të këtij versioni të programit" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Anulo" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Skedari i raportimit të problemit:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Konfirmo" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Gabimi: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Informacioni i mbledhur mund t'iu dërgohet zhvilluesve për të përmirësuar\n" "programin. kjo mund të zgjasë disa minuta." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Informacioni i mbledhur po i dërgohet sistemit të gjurmimit të gabimeve.\n" "Kjo mund të zgjasë disa minuta." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&U Bë" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "asnjë" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "U zgjodh: %s. Zgjidhje të shumëfishta:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Zgjedhjet:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Shtegu për tek skedari (Enter për ta anulluar):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Skedari nuk ekziston." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Kjo është një direktori." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Për të vazhduar, ju duhet të vizitoni URL-në që vijon:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Ju mund të nisni një shfletues tani, ose të kopjoni URL-në në një shfletues " "në një kompjuter tjetër." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Nise shfletuesin tani" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Nuk ka raporte dëmtimi të ngelura pezull. Provoni --help për më tepër " "informacion." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Sistemi juaj hasi në një problem serioz kerneli." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Ju mund t'i ndihmoni krijuesit ta rregullojnë problemin duke e raportuar atë." #~ msgid "Application problem" #~ msgstr "Problem me programin" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Na vjen keq, paketa \"%s\" dështoi në " #~ "instalim apo përditësim.</span>" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>T'i dërgojmë krijuesve një raport rreth problemit?</b></big>\n" #~ "\n" #~ "Pasi raporti i problemit është dërguar, ju lutemi mbushni formularin në " #~ "shfeltuesin që do të hapet automatikisht." #~ msgid "Kernel problem" #~ msgstr "Problem kerneli" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Problem i reduktuar (për lidhje interneti të ngadalta; %s)" #~ msgid "Restart _Program" #~ msgstr "Rinis _Programin" #~ msgid "Package problem" #~ msgstr "Problem pakete" #~ msgid "Content of the report" #~ msgstr "Përmbajtja e raportit" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Kompleto raportin (rekomandohet; %s)" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Ju mund t'i ndihmoni krijuesit që ta rregullojnë paketën duke raportuar " #~ "problemin." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Injoroni prishjet e mëtejshme të këtij versioni të programit" #~ msgid "_Report Problem..." #~ msgstr "_Raporto Problemin..." #~ msgid "_Send Report" #~ msgstr "_Dërgo Raportin" #~ msgid "&Report Problem..." #~ msgstr "&Raporto Problemin..." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Paketa \"%s\" dështoi në instalim apo përditësim." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Nëse nuk po bënit asgjë konfidenciale (siç është futja e fjalëkalimit apo\n" #~ "ndonjë informacion tjetër privat), ju mund të ndihmoni në përmirësimin e " #~ "programit\n" #~ "duke raportuar problemin." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s u mbyll papritur në %s të %s." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Dërgoni raportin e kompletuar (rekomandohet; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Dërgoni &raportin e reduktuar (për lidhje të ngadaltë Interneti; %s)" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Kjo nuk është një paketë e saktë %s" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Kjo do të heqë disa tema të mëdha nga raporti. kjo është shumë e dobishme " #~ "për krijuesit që do shqyrtojnë problemin, por mund të jetë shumë e madhe për " #~ "ju për ta ngarkuar nëse keni një lidhje të ngadaltë interneti." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Nëse nuk po bënit asgjë konfidenciale (vendosjen e një fjalëkalimi apo " #~ "informacion tjetër privat), ju mund të ndihmoni në përmirësimin e programit " #~ "duke e raportuar problemin." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Kjo ndodhi gjatë një pezullimi të mëparshëm dhe e pengoi atë që të nisë siç " #~ "duhet." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Kjo ndodhi gjatë një hibernimi të mëparshëm dhe e pengoi atë që të nisë siç " #~ "duhet." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "Juve ose ju nevojitet të bëni një veprim lokal (-s, -g, -o) ose të jepni një " #~ "skedar identifikimi (--auth); shikoni --help për një ndihmë të shkurtër" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "numër apo argumenta të gaburar; përdor --help për një ndihmë të shkurëtr" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Na vjen keq, aplikimi %s u mbyll papritmas." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Sistemi mund të bëhet i paqëndrueshëm tani dhe mund të ketë nevojë të " #~ "rindizet." ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/sr.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000164621�14416106601�011465� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Serbian translation of apport # Serbian linux distribution cp6Linux # Copyright (C) 2007 Marko Uskokovic # Marko Uskokovic <uskokovic@etf.bg.ac.yu>, 2007—2008. # Мирослав Николић <miroslavnikolic@rocketmail.com>, 2012—2016. msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2016-01-23 00:51+0000\n" "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" "Language-Team: Serbian <gnom@prevod.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: sr\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Апорт" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Откажи" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "У реду" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Извештај о урушавању" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Извините, догодила се унутрашња грешка.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Ако приметите будуће проблеме, покушајте поново да покренете рачунар." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Пошаљите извештај о грешци да помогнете исправљању овог проблема" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Занемари будуће проблеме у раду овог издања програма" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Прикажи појединости" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Испитај локално" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Остави затворено" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Настави" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Сакупљам информације о проблему</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Прикупљене су информације које могу да помогну ауторима у решавању проблема " "који сте пријавили." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Шаљем информације о проблему" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Шаљем информације о проблему</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Прикупљене информације се шаљу систему за праћење грешака. Ово ће потрајати " "неколико минута." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Датотека урушавања Апорта" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(бинарни подаци)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Извините, програм „%s“ се неочекивано зауставио." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Извините, „%s“ се неочекивано затворио." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Извините, „%s“ је наишао на унутрашњу грешку." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Да ли желите да пошаљете извештај програмерима?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Пошаљи" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Приморај затварање" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Поново покрени" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Програм „%s“ је престао да одговара." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Програм „%s“ је престао да одговара." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Пакет: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Извините, дошло је до проблема приликом инсталирања софтвера." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Програм „%s“ је наишао на унутрашњу грешку." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Програм „%s“ се неочекивано затворио." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Занемари будуће проблеме ове врсте" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Сакриј детаље" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Коришћење: %s <извештај> <циљни директоријум>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Одредишни директоријум постоји и није празан." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Корисник:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Лозинка:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Прикупљам информације о проблему" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Прикупљам информације о проблему" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Прикупљене информације могу бити послате програмерима ради побољшања " "програма. То може потрајати неколико минута." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Шаљем информације о проблему" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Прикупљам системске информације" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Потврђивање идентитета је неопходно за прикупљање системских података за " "извештај о овом проблему" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Извештавање о проблемима система" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Унесите вашу лозинку да приступите извештавању проблема системских програма" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Пријави проблем..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Пријавите грешке у раду програмерима" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Погледајте страницу упутства за појединости." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "наводи назив датотеке дневника коју произведе валгринд" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "поново користи претходно направљени директоријум пробног система (СДИР) или, " "ако не постоји, прави га" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "не прави или поново користи директоријум пробног система за додатне симболе " "исправљања грешака већ се ослања само на инсталиране симболе исправљања " "грешака." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "поново користи претходно направљени директоријум оставе (СДИР) или, ако не " "постоји, прави га" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "извештава о напредовању преузетог/инсталираног приликом инсталације пакета у " "пробном систему" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "извршни који је покренут под валгриндовим алатом за проверу меморије зарад " "откривања цурења меморије" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Инсталира један посебан пакет у пробном систему (може бити одређен више пута)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Грешка: „%s“ није извршни. Стајем." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Ваш систем сада може постати нестабилан и може бити потребно да га поново " "покренете." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Неће унети нове трагове у извештај, већ ће их записати на стандардни излаз." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Покреће међудејствену гдб сесију са језгром припремљеног извештаја (-o " "занемарено; неће преписати извештај)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Записује измењени извештај у задату датотеку уместо да мења оригинални " "извештај" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Уклања језгро припремљеног из извештаја након поновног стварања спремника " "путање" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Замењује кључну датотеку извештаја" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Замењује извршну путању извештаја" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Замењује мапе процеса извештаја" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Обнавља информације пакета извештаја" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Изграђује привремени пробни систем и преузима/инсталира потребне пакете и " "симболе за исправљање грешака у њему; без ове опције претпоставља се да су " "потребни пакети и симболи за исправљање грешака већ инсталирани на систему. " "Аргумент указује на основни директоријум подешавања система пакетирања; ако " "сте одредили „system“, користиће системске датотеке подешавања, али ће тада " "бити у стању да испрати урушавања која се дешавају на тренутно покренутом " "издању." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Извештава о напредовању преузетог/инсталираног приликом инсталације пакета у " "пробном систему" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Придодаје ознаку времена порукама дневника, за групну радњу" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Направи и користи ризнице трећих страна од изворних наведених у извештајима" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Директоријум оставе за пакете преузете у пробном систему" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Директоријум за нераспаковане пакете. Наредна покретања ће подразумевати да " "је било који већ преузети пакет такође извучен у овом издвојеном окружењу." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Путања до датотеке са информацијама за потврђивање идентитета базе података " "урушавања. Ово се користи када наводите ИБ урушавања да бисте послали " "пронађене трагове спремника (само ако ни „-g“, ни „-o“, ни „-s“ нису " "наведени)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Приказује пронађене трагове спремника и тражи потврду пре него што их пошаље " "у базу података о урушавањима." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Путања до двоструке базе података скулајта (основно: без провере дупликата)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Не можете да користите „-C“ без „-S“. Заустављам." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Да ли је у реду да пошаљем ове као прилоге? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Изгледа да овај пакет није исправно инсталиран" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ово није званичан „%s“ пакет. Уклоните пакет било које треће стране и " "покушајте опет." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Имате инсталирана нека застарела издања пакета. Надоградите следеће пакете и " "проверите да ли и даље долази до проблема:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "непознат програм" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Извините, програм „%s“ је неочекивано затворен" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Проблем у „%s“" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Ваш рачунар нема довољно слободне меморије да самостално анализира проблем и " "пошаље извештај ауторима." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Неисправан извештај о проблему" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Вама није допуштено да приступите извештају овог проблема." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Грешка" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Нема довољно простора на диску за обрађивање овог извештаја." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Ниједан пакет није наведен" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Треба да одредите пакет или ПИБ. Погледајте „--help“ за више информација." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Приступ је одбијен" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Наведени процес не припада вама. Покрените овај програм као власник процеса " "или као администратор." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Неисправан ПИБ" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Наведени ПИБ не припада програму." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Скрипта симптома „%s“ није одредила ниједан подутицајни пакет" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Пакет „%s“ не постоји" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Не могу да направим извештај" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Освежавам извештај о проблему" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Ви нисте извештач или нисте уписани за извештавање о овом проблему, или је " "извештај дупликат или је већ затворен.\n" "\n" "Направите нови извештај користећи „apport-bug“." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Ви нисте извештач о овом проблему. Много је лакше означити грешку као " "дупликат неког другог проблема него правити нови извештај.\n" "\n" "Препоручујемо вам да убаците извештај о грешци у неки већ постојећи " "користећи „apport-bug“ и да исти прокоментаришете.\n" "\n" "Да ли заиста желите да наставите?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Нису прикупљене додатне информације." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "О каквом проблему желите да известите?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Непознати симптом" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Симптом „%s“ није познат." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Након затварања ове поруке кликните на прозор неког програма да известите о " "његовом проблему." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "икспроп није успео да одреди ИБ процеса прозора" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <број извештаја>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Наводи назив пакета." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Додаје додатну ознаку извештају. Може бити одређено више пута." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [опције] [симптом|пиб|пакет|путања програма|.apport/.crash датотека]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Биће покренут у режиму пријављивања грешке. Захтева назив пакета (--package) " "и један опционалан пиб (--pid), или само пиб (--pid). Ако ништа није дато, " "приказаће списак познатих симптома. (Подразумева се ако је дат само један " "аргумент.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Притисните на прозор као циљ да попуните извештај о проблему." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Биће покренут у режиму слања грешке. Може да садржи опционални пакет (--" "package)." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Попуниће извештај грешке о симптому. (Подразумева се ако је назив симптома " "дат као једини аргумент.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Навешће назив пакета у режиму пријављивања грешке (--file-bug). Ово је " "изборно ако је одређен пиб (--pid). (Подразумева се ако је назив пакета дат " "као једини аргумент.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Наводи покренути програм у „--file-bug“ режиму. Ако је ово одређено, " "извештај о грешци ће садржати више информација. (Подразумева се ако је пиб " "дат као једини аргумент.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Обезбеђени пиб је проблематичан програм." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Пријављује о урушавању из дате „.apport“ или „.crash“ датотеке уместо једне " "приправне у „%s“. (Подразумева се ако је датотека дата као једини аргумент.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "У режиму пријављивања грешке, чува прикупљене информације у датотеку уместо " "да шаље извештај. Датотека може бити послата касније и са неког другог " "рачунара." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Приказује број издања Апорта." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "Ово ће покренути „apport-retrace“ у прозору терминала да испита пад." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Покреће гдб сесију" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Покреће гдб сесију без преузимања симбола уклањања грешака" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Освежи „%s“ потпуном симболичком трасом спремника" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Овај извештај о проблему се односи на програм који није више инсталиран." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Проблем се догодио са програмом „%s“ који се изменио од када је дошло до " "урушавања." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Овај извештај о грешци је оштећен и не може бити обрађен." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Извештај припада пакету који није инсталиран." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "Дошло је до грешке док сам покушавао да обрадим извештај о овом проблему:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Не могу да утврдим пакет или изворни назив пакета." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Не могу да покренем прегледника интернета" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Не могу да покренем прегледника интернета да бих отворио „%s“." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Унесите информације о вашем налогу за систем праћења грешака „%s“" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Проблем са мрежом" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Не могу да успоставим везу са базом података о урушавањима, проверите везу " "са интернетом." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Недостатак меморије" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Ваш систем нема довољно меморије да обради овај извештај о паду система." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Проблем не може бити пријављен:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Проблем је већ познат" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Овај проблем је већ пријављен у извештају о грешци приказаном у прегледнику " "интернета. Проверите да ли можете да додате било какву додатну информацију " "која би могла да буде од помоћи ауторима." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Овај проблем је већ пријављен програмерима. Хвала вам!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Ово се догодило за време претходне обуставе, и спречило је систем да настави " "исправно." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Ово се догодило за време претходног замрзавања, и спречило је систем да " "настави исправно." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Процес настављања се „заледио“ при самом крају и све је изгледало као да је " "успешно завршен." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Притисните неки тастер да наставите..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Шта желите да урадите? Ваше могућности су:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Изаберите (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i бајта)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Након обављеног слања извештаја о проблему, попуните формулар \n" "у самостално отвореном прегледнику интернета." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Пошаљи извештај (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Испитај локално" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Прикажи извештај" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Задржи датотеку извештаја за касније слање или умножавање на неко друго " "место" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Откажи и &занемари будуће грешке у раду овог издања програма" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Откажи" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Датотека извештаја о проблему:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Потврди" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Грешка: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Прикупљене информације могу бити послате програмерима ради\n" "побољшања програма. То може потрајати неколико минута." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Прикупљене информације се шаљу систему за праћење грешака.\n" "Ово може потрајати неколико минута." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Урађено" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ништа" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Изабрано: %s. Више избора:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Избори:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Путања до датотеке („Унеси“ да откажете):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Датотека не постоји." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Ово је директоријум." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Да наставите, морате да посетите следећу адресу:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Сада можете покренути прегледника, или умножити ову адресу у прегледнику на " "неком другом рачунару." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Покрени прегледника сада" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "На чекању нема извештаја о паду. Пробајте „--help“ за више информација." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Извините, пакет „%s“ није успео да се " #~ "инсталира или надогради.</span>" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Завршите извештај (препоручено; %s)" #~ msgid "Content of the report" #~ msgstr "Садржај извештаја" #~ msgid "Package problem" #~ msgstr "Проблем пакета" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Можете помоћи ауторима да поправе пакет тако што ћете пријавити проблем." #~ msgid "&Details..." #~ msgstr "&Детаљи..." #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Извините, програм „%s“ се неочекивано затворио." #~ msgid "Generic error" #~ msgstr "Општа грешка" #~ msgid "&Send" #~ msgstr "&Пошаљи" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Пошаљи комплетан извештај (препоручљиво; %s)" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Ово није оригинални %s пакет" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "Можете помоћи програмерима да реше проблем пријављивањем истог." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Непотпун извештај (спора интернет веза; %s)" #~ msgid "Restart _Program" #~ msgstr "_Поново покрени програм" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Ако нисте радили ништа поверљиво (уношење лозинке или других\n" #~ "приватних информација), можете да помогнете у побољшавању програма\n" #~ "тако што ћете пријавити проблем." #~ msgid "&Report Problem..." #~ msgstr "&Пријави проблем..." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Пакет „%s“ није успео да се инсталира или надогради." #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Пошаљи &скраћени извештај (спора Интернет веза; %s)" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "До овога је дошло приликом претходне обуставе што је исту спречило да " #~ "правилно настави." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "До овога је дошло приликом претходног замрзавања што је истог спречило да " #~ "правилно настави." #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Да ли желите програмерима да пошаљете извештај о " #~ "проблему?</b></big>\n" #~ "\n" #~ "Након завршеног слања извештаја о проблему, попуните формулар у аутоматски " #~ "отвореној страници у интернет претраживачу." #~ msgid "Application problem" #~ msgstr "Проблем програма" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Ако нисте радили ништа поверљиво (уношење лозинке или неке друге приватне " #~ "информације), можете помоћи побољшању програма тако што ћете пријавити " #~ "проблем." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Занемари будуће падове ове верзије програма" #~ msgid "_Report Problem..." #~ msgstr "При_јави проблем..." #~ msgid "_Send Report" #~ msgstr "По_шаљи извештај" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Занемари будуће грешке у раду ове верзије програма" #~ msgid "Restart &Program" #~ msgstr "Поново покрени &програм" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "Извините, пакет „%s“ није успео да се инсталира или надогради." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Извините, „%s“ се неочекивано затворио" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Извините, „%s“ се неочекивано затворио." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Ваш систем је наишао на озбиљан проблем у језгру." #~ msgid "Kernel problem" #~ msgstr "Проблем језгра" #~ msgid "Send this data to the developers?" #~ msgstr "Да пошаљем ове податке програмерима?" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "После завршеног слања извештаја о проблему, попуните формулар који ће се " #~ "аутоматски отворити у интернет претраживачу." #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Ова радња ће уклонити неке делове из извештаја. Они су веома корисни за " #~ "ауторе у циљу решавања проблема, али је за вас можда превише за слање ако " #~ "имате спору интернет везу." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s се неочекивано затворио %s у %s." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Извините, програм „%s“ се неочекивано затворио." #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "неисправан број аргумента; користите „--help“ за кратку помоћ" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [опције] <извештај проблема апорта | ИБ урушавања>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "такође требате да извршите месну радњу (-s, -g, -o) или доставите датотеку " #~ "за потврђивање идентитета (--auth); погледајте „--help“ за кратку помоћ" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Ваш систем може сада постати нестабилан и можда треба бити поново покренут." ���������������������������������������������������������������������������������������������������������������apport-2.20.11/po/sv.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000135416�14416106601�011471� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Swedish translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Swedish <sv@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: sv\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Kraschrapport" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Tyvärr, ett internt fel inträffade.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "Starta om datorn om du fortsätter att uppleva problem." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Skicka en felrapport för att hjälpa till att rätta till problemet" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ignorera framtida problem med denna programversion" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Visa information" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "Und_ersök lokalt" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Lämna stängd" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Fortsätt" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Samlar information om problemet</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Information samlas in som kan hjälpa utvecklarna att rätta till problemet " "som du rapporterar." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Skickar probleminformation" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Skickar probleminformation</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Den insamlade informationen skickas till felrapporteringssystemet. Det kan " "ta några minuter." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Kraschrapportsfil för Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binär data)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Tyvärr, %s har oväntat stängts av." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Tyvärr, %s har påträffat ett internt fel." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Skicka problemrapport till utvecklarna?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Skicka" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Starta igen" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paket: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Tyvärr, ett problem inträffade vid installation av program." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Programmet %s har oväntat stängts av." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ignorera framtida problem av denna typ" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Dölj information" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Användning: %s <rapport> <målkatalog>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Målkatalogen finns och är inte tom." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Användarnamn:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Lösenord:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Samlar in probleminformation" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Samlar in probleminformation" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Den insamlade informationen kan skickas till utvecklarna för att förbättra " "programmet. Det här kan ta några minuter." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Skickar probleminformation" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Rapportera ett problem..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Rapportera ett fel till utvecklarna" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "Installera ett extrapaket i sandlådan (kan anges flera gånger)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "Ditt system kan nu bli instabilt och kan behöva att startas om." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" "Lägg inte in nya bakåtspårningar i rapporten, men skriv dem till standard ut." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Starta en interaktiv gdb-session med rapportens minnesutskrift (-o " "ignoreras; skriver inte om rapporten)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Skriv ändrad rapport till angiven fil istället för att ändra den " "ursprungliga rapporten" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Ta bort minnesutskriften från rapporten efter omgenerering av stackspårning" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Åsidosätt rapportens CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Åsidosätt rapportens ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Åsidosätt rapportens ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Bygg om rapportens paketinformation" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Bygg en tillfällig sandlåda och hämta/installera nödvändiga paket samt " "felsökningssymbolerna där; utan det här alternativet antas att nödvändiga " "paket och felsökningssymboler redan har installerats på systemet. Argumentet " "pekar på baskatalogen för pakethanteringssystemets konfiguration; om du " "anger \"system\" kommer det använda systemets konfigurationsfiler, men " "kommer då endast kunna bakåtspåra krascher som skedde i den utgåva som nu " "körs." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Rapportera förlopp för hämtning/installation när paket installeras i " "sandlådan" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "Lägg till tidsstämplar längst fram i loggmeddelanden, för automatiserade " "åtgärder" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Skapa och använd tredjepartsförråd från platser specificerade i rapporter" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Mellanlagringskatalog för paket som hämtas i sandlådan" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Sökväg till en fil med autentiseringsinformation för kraschdatabasen. Detta " "används när ett krasch-id anges för att skicka upp retraced stackspårningar " "(endast om ingen av -g, -o, eller -s har angivits)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Visa retraced stackspårningar och fråga efter bekräftelse innan de skickas " "till kraschdatabasen." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Sökväg till den duplicerade sqlite-databasen (standard: ingen kontroll av " "duplikat)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "OK att skicka dessa som bilagor? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Detta paket verkar inte ha installerats korrekt" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Det här är inte ett officiellt %s-paket. Ta bort eventuella tredjepartspaket " "och försök igen." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Du har några föråldrade paketversioner installerade. Uppgradera följande " "paket och kontrollera om problemet kvarstår:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "okänt program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Tyvärr, programmet \"%s\" avslutades oväntat" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Problem i %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Din dator har inte tillräckligt med ledigt minne för att automatiskt " "analysera problemet och skicka en rapport till utvecklarna." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Ogiltig problemrapport" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Du tillåts inte komma åt denna problemrapport." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Fel" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" "Det finns inte tillräckligt mycket diskutrymme för att behandla denna " "rapport." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Inget paket angivit" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "DU måste ange ett paket eller en PID. Se --help för mer information." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Åtkomst nekad" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Den angivna processen tillhör inte dig. Kör det här programmet som " "processägaren eller som root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Ogiltig PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Det angivna process-id:t tillhör inte något program." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Symtomskriptet %s fastställde inte ett påverkat paket" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Paketet %s finns inte" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Kan inte skapa rapporten" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Uppdaterar problemrapporten" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Du är inte rapportör eller prenumerant av denna problemrapport, eller så är " "rapporten en dubblett eller redan stängd.\n" "\n" "Skapa en ny rapport med \"apport-bug\"." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Du är inte den som rapporterat denna problemrapport. Det är mycket enklare " "att märka en felrapport som en dubblett av en annan än att flytta dina " "kommentarer och bilagor till en ny felrapport.\n" "\n" "Vi rekommenderar därför att du skapar en ny felrapport med \"apport-bug\" " "och skriver en kommentar i denna felrapport om den nya rapporten du skapar.\n" "\n" "Vill du verkligen fortsätta?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Ingen ytterligare information har samlats in." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Vilken typ av problem vill du rapportera?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Okänd symptom" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Symptomen \"%s\" är inte känd." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Efter att du stängt detta meddelande kan du klicka på ett programfönster för " "att rapportera ett problem med det." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop misslyckades med att fastställa process-ID för fönstret" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <rapportnummer>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Ange paketnamn." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Lägg till en extra tagg till rapporten. Kan anges flera gånger." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [flaggor] [symptom|pid|package|program sökväg|.apport/.crash-fil]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Starta i felrapporteringsläge. Kräver --package och en valfri --pid, eller " "bara en --pid. Om ingen anges så visas en lista över kända symptom. " "(Standard om ett enda argument anges.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Klicka på ett fönster för att rapportera ett problem med det." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Starta i feluppdateringsläge. Kan ta emot en valfri --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Skicka in en felrapport om ett symptom. (Standard om symptomnamnet anges som " "enda argument.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Ange paketnamn i läget --file-bug. Detta är valfritt om en --pid anges. " "(Standard om paketnamnet anges som enda argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Ange ett körande program i --file-bug-läget. Om detta anges kommer " "felrapporten att innehålla mer information (underförstått om pid anges som " "enda argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Rapportera kraschen från angiven fil med ändelsen .apport eller .crash " "istället för de väntande i %s. (Standard om filen anges som enda argument.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "I felrapporteringsläge kommer insamlad information att sparas i en fil " "istället för att rapportera. Denna fil kan sedan rapporteras in från en " "annan dator." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Skriv ut versionsnummer för Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Detta kommer starta apport-retrace i ett terminalfönster för att undersöka " "kraschen." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Kör GDB-session" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Kör GDB-session utan att ladda ner felsökningssymboler" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Uppdatera %s med fullständigt symbolisk stackspårning" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Denna problemrapport gäller för ett program som inte längre finns " "installerat." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Problemet inträffade med programmet %s, vilket har ändrats sedan kraschen " "hände." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Den här problemrapporten är skadad och kan inte behandlas." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Rapporten tillhör ett paket som inte är installerat." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Ett fel inträffade när den här problemrapporten skulle bearbetas:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Kunde inte bestämma paketet eller källpaketets namn." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Kunde inte starta webbläsaren" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Kunde inte starta webbläsaren för att öppna %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Ange din kontoinformation för felrapporteringssystemet %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Nätverksproblem" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Kan inte ansluta till kraschdatabasen. Kontrollera din internetanslutning." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Slut på minne" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Ditt system har inte tillräckligt mycket minne att behandla den här " "kraschrapporten." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Problemet kan inte rapporteras:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Problemet är redan känt" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Det här problemet var redan rapporterat i felrapporten som visas i " "webbläsaren. Kontrollera om du kan lägga till ytterligare information som " "kan vara av användning för utvecklarna." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Problemet har redan rapporterats till utvecklarna. Tack!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Återgångsprocessen hängde sig mycket nära slutet och kommer att se ut att ha " "slutförts normalt." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Tryck på valfri tangent för att fortsätta..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Vad vill du göra? Dina möjligheter är:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Välj (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i byte)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Efter att problemrapporten har skickats kan du fylla i formuläret i den\n" "webbläsare som automatiskt öppnas." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Skicka rapport (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "Und&ersök lokalt" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Visa rapport" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Behåll rapportfilen för senare sändning eller kopiera den någon annanstans" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Avbryt och &ignorera framtida krascher av denna programversion" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Avbryt" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Fil för problemrapport:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Bekräfta" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Fel: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Den insamlade informationen kan skickas till utvecklarna för att förbättra\n" "programmet. Det kan ta några minuter att genomföra." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Den insamlade informationen skickas till felhanteringssystemet.\n" "Det här kan ta några minuter." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Färdig" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "inget" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Markerat: %s. Flera val:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Val:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Sökväg till fil (Enter för att avbryta):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Filen finns inte." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Detta är en katalog." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Du måste besöka följande URL för att fortsätta:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Du kan starta en webbläsare nu eller kopiera denna URL in i en webbläsare på " "en annan dator." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Starta en webbläsare nu" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "Inga väntande kraschrapporter. Prova --help för mer information." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Du kan hjälpa utvecklarna att rätta till problemet genom att rapportera det." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Paketet \"%s\" misslyckades att installeras eller uppgraderas" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Komplett rapport (rekommenderas; %s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Skicka problemrapport till utvecklarna?</b></big>\n" #~ "\n" #~ "Fyll i formuläret i det webbläsarfönster som öppnats automatiskt efter att " #~ "problemrapporten har skickats." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Om du inte gjorde något av hemlig karaktär (angav lösenord eller annan " #~ "privat information) kan du hjälpa till att förbättra programmet genom att " #~ "rapportera problemet." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "Tyvärr, %s avslutades oväntat" #~ msgid "Application problem" #~ msgstr "Programproblem" #~ msgid "&Details..." #~ msgstr "&Detaljer..." #~ msgid "_Send Report" #~ msgstr "_Skicka rapport" #~ msgid "Generic error" #~ msgstr "Allmänt fel" #~ msgid "" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "Fyll i formuläret i det webbläsarfönster som öppnats automatiskt efter att " #~ "problemrapporten har skickats." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Om du inte gjorde något av hemlig karaktär (angav lösenord eller annan\n" #~ "privat information) så kan du hjälpa oss att förbättra programmet genom\n" #~ "att rapportera problemet." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s stängdes oväntat %s klockan %s." #~ msgid "Restart _Program" #~ msgstr "Starta om _programmet" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "" #~ "Tyvärr, paketet \"%s\" misslyckades att installeras eller uppgraderas." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Tyvärr, misslyckades att installera " #~ "eller uppgradera paketet \"%s\".</span>" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Skicka komplett rapport (rekommenderas; %s)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Reducerad rapport (långsam Internetanslutning; %s)" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Tyvärr, %s stängdes oväntat." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ignorera framtida krascher för den här programversionen" #~ msgid "Restart &Program" #~ msgstr "Starta om &programmet" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Skicka &reducerad rapport (långsam internetanslutning; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Det här kommer att ta bort vissa större delar från rapporten. Dessa är " #~ "mycket användbara för utvecklarna för att felsöka problemet, men kan vara " #~ "för stora för dig att skicka upp om du har en långsam Internetanslutning." #~ msgid "&Report Problem..." #~ msgstr "&Rapportera problem..." #~ msgid "_Report Problem..." #~ msgstr "_Rapportera problem..." #~ msgid "&Send" #~ msgstr "&Skicka" #~ msgid "Kernel problem" #~ msgstr "Problem i kärnan" #~ msgid "&Ignore future crashes of this program version" #~ msgstr "&Ignorera framtida krascher för den här programversionen" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Du kan hjälpa utvecklarna att rätta till paketet genom att rapportera " #~ "problemet." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Det här är inte ett genuint %s-paket" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "Tyvärr, programmet \"%s\" stängdes oväntat." #~ msgid "Content of the report" #~ msgstr "Rapportens innehåll" #~ msgid "Package problem" #~ msgstr "Paketproblem" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Ditt system har påträffat ett allvarligt problem i kärnan." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Detta inträffade under ett tidigare vänteläge och förhindrade det från att " #~ "korrekt återgå till normalt läge." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Detta inträffade under ett tidigare viloläge och förhindrade det från att " #~ "korrekt återgå till normalt läge." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [flaggor] <apport problemrapport | krasch-id>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "felaktigt antal argument; använd --help för en kortare hjälp" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "du behöver antingen göra en lokal åtgärd (-s, -g, -o) eller ange en " #~ "autentiseringsfil (--auth); se --help för en kort hjälp" #~ msgid "Send this data to the developers?" #~ msgstr "Skicka denna data till utvecklarna?" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Tyvärr, programmet %s har oväntat stängts av." ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ta.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000106067�14416106601�011445� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of ta(3).po to tamil # Tamil translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # drtvasudevan <agnihot3@gmail.com>, 2006. msgid "" msgstr "" "Project-Id-Version: ta(3)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2012-03-10 22:25+0000\n" "Last-Translator: Sarrvesh <sarrfriend@gmail.com>\n" "Language-Team: tamil <Ubuntu-l10n-tam@lists.ubuntu.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "அப்போர்ட்" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "பிரச்னையின் தகவலைப் பதிவேற்றப்படுகிறது" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "பயனாளர் பெயர்:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "கடவுச் சொல்:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "பிரச்னையின் தகவலைப் பதிவேற்றப்படுகிறது" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s இல் இடர்பாடு" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "தங்கள் கணிப்பொறியில் தேவையான இடம் இல்லாததால் மென்பொருட்களை ஆராய்ந்து " "பிரச்சனைகளை தெரிவிக்க இயலவில்லை" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "இந்தப் பிழை அறிக்கையை அணுக தங்களுக்கு அனுமதி கிடையாது" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "பிழை" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "இப் பிழை அறிக்கையைக் கையாள போதிய இடம் தங்கள் கணிப்பொறியில் இல்லை." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "அனுமதி மறுக்கப்பட்டது" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "அறிக்கையை உருவாக்க இயலவில்லை" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "எத்தகையப் பிழையை அறிவிக்க விரும்புகிறீர்கள்?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "இந்தப் பிழை அறிக்கையைக் கையாளும்போது பிழை ஏற்பட்டுள்ளது" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "பொதிகளின் அல்லது மூல தொகுப்புகளின் பெயரை நிர்ணயிக்க முடியவில்லை." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "இது சில பெரிய உருப்படிகளை அறிக்கையிலிருந்து நீக்கும். இவை நிரல் " #~ "உருவாக்குவோருக்கு மிகவும் உதவக் கூடிய தகவல்கள் ஆயினும் உங்கள் வலை இணைப்பு " #~ "மெதுவானதாக இருப்பின் இது மேலேற்றுவதற்கு பெரியதாக இருக்கலாம்." #, python-format #~ msgid "Sorry, %s closed unexpectedly" #~ msgstr "மன்னிக்கவும், %s எதிர்பாராத விதமாக செயலிழந்துவிட்டது" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "மன்னிக்கவும், %s பயன்பாடு எதிர்பாராத விதமாக செயலிழந்துவிட்டது." #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "மன்னிக்கவும், %s எதிர்பாராத விதமாக செயலிழந்துவிட்டது." #~ msgid "&Details..." #~ msgstr "&விவரங்கள்..." #~ msgid "&Send" #~ msgstr "&அனுப்புக" #~ msgid "Generic error" #~ msgstr "பொதுவான பிழை" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/te.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000105224�14416106601�011443� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Telugu translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Telugu <te@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: te\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "ఈ ప్యాకేజీ సరిగ్గా ఇన్స్టాల్ కాదు అనిపిస్తుంది" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "ఈ అధికారిక% s ప్యాకేజీ లేదు. ఏవైనా మూడవ పార్టీ ప్యాకేజీ తొలగించి మళ్ళీ " "ప్రయత్నించండి." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "తెలియని కార్యక్రమం" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "క్షమించాలి, కార్యక్రమం \"% s\" అనుకోకుండా మూసివేయబడింది" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "మీ కంప్యూటర్ ఆటోమేటిక్గా సమస్య విశ్లేషించేందుకు మరియు డెవలపర్లకు ఒక నివేదిక " "పంపేందుకు తగినంత ఉచిత మెమరీ లేదు." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "చెల్లని సమస్య నివేదిక" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "దోషము" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "ఈ నివేదిక ప్రాసెస్ చేయడానికి తగినంత డిస్క్ స్థలం అందుబాటులో లేదు." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "ప్యాకేజీ పేర్కొనలేదు" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "మీరు ఒక ప్యాకేజీ లేదా ఒక PID పేర్కొనాలి. చూడండి --help మరింత సమాచారం కొరకు ." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "అనుమతి నిరాకరించబడింది" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "పేర్కొన్న ప్రక్రియ మీకు సంబంధించినది కాదు. ప్రక్రియ యజమాని లేదా, root లాగ ఈ " "ప్రోగ్రామ్ రన్ చెయ్యండి." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "చెల్లని PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "పేర్కొన్న ప్రక్రియ ID ఒక కార్యక్రమానికి సంబంధించినది కాదు." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "లక్షణం లిపి% s ఒక బాధిత ప్యాకేజీ గుర్తించేందుకు లేదు" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "ప్యాకేజీ% s లేదు" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "నివేదిక సృష్టించడం సాధ్యం కాదు" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "సమస్య నివేదిక నవీకరిస్తోంది" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "మీరు ఈ సమస్య నివేదిక యొక్క రిపోర్టర్ లేదా చందాదారుల కాదు, లేదా నివేదిక నకిలీ " "లేదా ఇప్పటికే మూసివేయబడింది.\n" "\"apport-bug\" ఉపయోగించి ఒక నివేదిక రూపొందించండి." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "అదనపు సమాచారం సేకరించ లేదు" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "నివేదిక ఇన్స్టాల్ లేని ఒక ప్యాకేజీ చెందినది." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "ఈ సమస్య నివేదిక ప్రాసెస్ చేసేటప్పుడు ఒక దోషం ఏర్పడింది:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/tg.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000150165�14416106601�011451� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Tajik translation for apport # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2013. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Tajik <tg@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: tg\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Гузориши вайроншавӣ" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Мутаассифона, хатогии дохилӣ ба вуҷуд омад.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Агар шумо мушкилиҳои дигарро бинед, кӯшиш кунед, ки компютерро бозоғозӣ " "намоед." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Фиристодани гузориши хатогӣ барои кӯмак дар ислоҳ кардани ин мушкилӣ" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Нодида гирифтани мушкилиҳои ояндаи ин версияи барнома" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Намоиш додани тафсилот" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_Санҷиши маҳаллӣ" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Пӯшида нигоҳ доред" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Давом додан" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Маълумоти мушкилӣ ҷамъ шуда истодааст</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Маълумоте ҷамъ карда мешавад, ки метавонад ба таҳиягарон ҳангоми ислоҳ " "кардани мушкилии гузоришдодашудаи шумо кӯмак кунад." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Боркунии иттилооти мушкилӣ" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Маълумоти мушкилӣ бор шуда истодааст</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Маълумоти ҷамъшуда ба системаи пайгирии хатогиҳо фиристода шуда истодааст. " "Ин метавонад якчанд дақиқаро гирад." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Файли нокомии Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(иттилооти дуӣ)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Мутаассифода, барномаи %s ногаҳонан пӯшида шуд." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Мутаассифона, %s ногаҳонан пӯшида шуд." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Мутаассифона, %s бо хатогии дохилӣ дучор шуд." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Гузориши мушкилиро ба таҳиягарон мефиристед?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Фиристодан" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Маҷбур кардани пӯшидан" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Аз нав иҷро кардан" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Барномаи %s ҷавоб намедиҳад." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Барномаи \"%s\" ҷавоб намедиҳад." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Баста: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Мутаассифона, ҳангоми насбкунии нармафзор мушкилие ба вуҷуд омад." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "Барномаи %s дорои хатогии дарунӣ мебошад." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "Барномаи %s ногаҳон қатъ шудааст." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Нодида гирифтани мушкилиҳои ояндаи ин намуд" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Пинҳон кардани тафсилот" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Истифодабарӣ: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Директорияи таъинотӣ вуҷуд дорад ва холӣ намебошад." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Номи корбар:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Парол:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Ҷамъкунии маълумоти мушкилӣ" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Ҷамъкунии маълумоти мушкилӣ" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Маълумоти ҷамъшуда метавонад барои беҳтар кардани барнома ба таҳиягарон " "фиристода шавад. Ин метавонад якчанд дақиқаро гирад." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Боркунии иттилооти мушкилӣ" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Ҷвмъ кардани маълумоти система" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Барои ҷамъ кардани маълумоти система барои ин гузориши мушкилӣ, номи корбар " "ва парол лозим аст" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Системаи гузоришдиҳии мушкилиҳо" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Лутфан, пароли худро ворид кунед, то ин ки ба гузоришҳои мушкилиҳои " "барномаҳои системавӣ дастрасӣ пайдо кунед" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Гузориши мушкилӣ..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Гузориш додани амали нодуруст ба таҳиягарон" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Барои тафсилот ба саҳифаи man нигаред." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" "муайян кардани номи файли сабти рӯйдодҳо, ки бо valgrind эҷод карда шудааст" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "истифодаи дубораи директорияи қаблан эҷодшудаи регдон (SDIR), ё дар ҳолати " "мавҷуд набудан, эҷод кардани он" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "директорияи регдонро барои аломатҳои иловагии ислоҳи хатоҳо эҷод накунед ё " " аз нав истифода набаред, танҳо ба аломатҳои насбшудаи ислоҳи хатоҳо асос " "ёбед." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "истифодаи дубораи директорияи қаблан эҷодшудаи зерҳофиза (CDIR), ё дар " "ҳолати мавҷуд набудан, эҷод кардани он" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "гузориш додани раванди боргирӣ/насбкунӣ ҳангоми насбкунии бастаҳо ба регдон" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "файли иҷрошаванда, ки дар абзори саниҷиши ҳофизаи valgrind барои пайдо " "кардани ихроҷҳои ҳофиза иҷро мешавад" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Насб кардани бастаи иловагӣ ба регдон (метавонад якчанд маротиба муайян " "карда шавад)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Хатогӣ: %s иҷро намешавад. Амал қатъ карда шуд." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Ҳозир системаи шумо метавонад ноустувор гардад ва бояд бозоғозӣ карда шавад." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Пайгириҳои навро ба гузориш нагузоред, онҳоро ба stdout нависед." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Оғоз кардани ҷаласаи интерактивии gdb бо анбораи мағзи гузориш (-o нодида " "гирифта мешавад; гузоришро рӯйҳамнависӣ намекунад)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Навиштани гузориши тағйирёфта ба файли додашуда ба ҷойи тағйир додани " "гузориши аслӣ" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Тоза кардани дампи мағз аз гузориш баъд аз эҷодкунии дубораи пайгирии анбора" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Бекор кардани CoreFile-и гузориш" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Бекор кардани ExecutablePath-и гузориш" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Бекор кардани ProcMaps-и гузориш" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Аз нав сохтани маълумоти баста" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Сохтани регдони муваққатӣ ва ба он ҷо боргирӣ/насб кардани бастаҳои лозимӣ " "ва аломатҳои ислоҳи хатоҳо; бе ин имкон ҳисоб карда мешавад, ки бастаҳо ва " "аломатҳои ислоҳи хатоҳои лозимӣ аллакай дар система насб карда шудаанд. " "Аргумент ба директорияи асоси конфигуратсияи системаи бастаҳо нишона " "мегузорад; агар шумо \"система\" муайян кунед, он файлҳои конфигуратсияи " "системаро истифода мебарад, аммо он гоҳ метавонад танҳо нокомиҳоеро, ки дар " "релизи ҷории иҷрошаванда ба вуҷуд омаданд, дубора рад мекунад." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Гузориш додани раванди боргирӣ/насбкунӣ ҳангоми насбкунии бастаҳо ба регдон" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Гузоштани вақт ба паёмҳои сабти рӯйдодҳо, барои амалиётҳои гурӯҳӣ" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Директорияи зерҳофиза барои бастаҳое, ки дар регдон боргирӣ шудаанд" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Директория барои бастаҳои баровардашуда. Иҷрокуниҳои оянда ҳисоб мекунанд, " "ки бастаи аллакай боргиришуда ба ин регдон низ бароварда шудааст." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Масир ба файл бо маълумоти воридшавии пойгоҳи иттилоотии нокомиҳо. Ин он гоҳ " "истифода мешавад, ки барои боркунии пайгириҳои дубора радшудаи анбора ID-и " "нокомӣ муайян карда мешавад (танҳо он гоҳ, ки -g, -o, ё -s муайян нашудааст)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Намоиш додани пайгириҳои радшудаи дубора ва пурсидани тасдиқнома пеш аз " "фиристодани онҳо ба пойгоҳи иттилоотии нокомиҳо." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Масир ба пойгоҳи иттилоотии такрории sqlite (пешфарз: бе санҷиши такрориҳо)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" "Шумо наметавонед \"-C\"-ро бе \"-S\" истифода баред. Амал қатъ карда шуд." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Инҳоро ҳамчун замимаҳо мефиристонед? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Чунин менамояд, ки ин баста ба таври дуруст насб нашудааст" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Ин бастаи расмии %s намебошад. Лутфан, ягон бастаи тарафи сеюмро тоза карда, " "амалро такрор кунед." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Шумо баъзе версияҳои кӯҳнаи баста доред. Лутфан, ба бастаҳои зерин такмил " "диҳед ва санҷед, ки оё мушкилӣ боз ҳам ба вуҷуд меояд:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "барномаи номаълум" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Мутаассифона, барномаи \"%s\" ногаҳонан пӯшида шуд" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Мушкилӣ дар %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Компютери шумо барои ба таври худкор ташхис кардани мушкилӣ ва фиристодани " "гузориш ба таҳиягарон ҳофизаи озоди кофӣ надорад." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Гузориши мушкилӣ беэътибор аст" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Шумо наметавонед ба ин гузориши мушкилӣ дастрасӣ пайдо кунед." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Хатогӣ" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Барои коркарди ин гузориш фазои диск кофӣ нест." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Ягон баста муайян нашудааст" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Шумо бояд баста ё PID-ро муайян кунед. Барои маълумоти бештар \"--help\"-ро " "истифода баред." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Дастарсӣ манъ аст" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Раванди муайяншуда ба шумо тааллуқ надорад. Лутфан, ин барномаро ҳамчун " "раванди root иҷро кунед." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID беэътибор" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "ID-и раванди муайяншуда ба барнома тааллуқ надорад." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Скрипти нишонаи %s бастаи таъсиргирифтаро муайян накард" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Бастаи %s вуҷуд надорад" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Гузориш эҷод намешавад" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Навсозии гузориши мушкилӣ" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Шумо гузоришдиҳанда ё обуначии ин гузориши мушкилӣ намебошед, ё ки гузориш " "такрорӣ ё аллакай пӯшида мебошад.\n" "\n" "Лутфан, гузориши навро тавассути \"apport-bug\" эҷод кунед." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Шумо гузоришдиҳандаи ин гузориши мушкилӣ мебошед. Ба ҷойи интиқол додани " "шурҳҳо ва замимаҳои худ ба хатои нав, шумо метавонед ба осонӣ хаторо ҳамчун " "такрорӣ қайд кунед.\n" "\n" "Баъдан, мо тавсия медиҳем, ки шумо гузориши нави хаторо тавассути \"apport-" "bug\" фиристонед, ва дар ин хато дар бораи хатои фиристодашавандаи худ шарҳ " "диҳед.\n" "\n" "Шумо воқеан мехоҳед идома диҳед?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Ягон маълумоти иловагӣ ҷамъ карда намешавад." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Шумо мехоҳед кадом намуди мушкилиро гузориш диҳед?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Мушкилии номаълум" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Мушкилии \"%s\" номаълум аст." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Баъд аз пӯшидани ин паём, лутфан, ба равзанаи барнома зер кунед, то ин ки " "мушкилии онро гузориш диҳед." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop ID-и раванди равзанаро муайян карда натавонист" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <report number>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Муайян кардани номи баста." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" "Иловакунии барчаспи иловагӣ ба гузориш. Метавонад якчанд маротиба муайян " "карда шавад." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Оғоз дар ҳолати сабти рӯйдодҳои хатогиҳо. \"--package\" ва \"--pid\"-и " "ихтиёриро, ё ки танҳо \"--pid\"-ро талаб мекунад. Агар ягонтои онҳо дода " "нашуда бошад, рӯйхати нишонаҳои маълум намоиш дода мешавад. (Агар аргументи " "ягона дода шавад, ба кор меояд.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Ба равзанае зер кунед ва мушкилиро гузориш диҳед." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Оғоз кардан дар ҳолати навсозии хатогиҳо. Метавонад \"--package\"-и " "ихтиёриро гирад." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Фиристодани гузориши хатогӣ оид ба нишона. (Танҳо агар номи нишона танҳо " "ҳамчун аргумент дода шудааст, тааллуқ дорад.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Муайян кардани номи баста дар ҳолати --file-bug. Агар --pid муайян карда " "бошад, ин ихтиёрӣ мебошад. (Агар ба номи баста танҳо як аргумент дода шавад, " "ба кор меояд.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Муайян кардани барномаи иҷрошаванда дар ҳолати --file-bug. Агар ин муайян " "карда шавад, гузориши хатогӣ маълумоти бештарро дар бар мегирад. (Агар ба " "pid танҳо як аргумент дода шавад, ба кор меояд.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Pid-и пешниҳодшуда барномаи боздошта мебошад." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Гузориш додани нокомӣ аз файли додашудаи .apport ё .crash ба ҷойи файлҳои " "мунтазир дар %s. (Агар файл ҳамчун аргументи ягона дода шавад, истифода " "мешавад.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Дар намуди фиристодани хатоҳо, маълумоти ҷамъшударо ба ҷойи гузориш додани " "он ба файл захира кунед. Ин файл метавонад баъдан дар компютери дигар " "гузориш дода шавад." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Чоп кардани рақами версияи Apport." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Ин apport-retrace-ро дар равзанаи терминал аз нав оғоз мекунад, то ин ки " "нокомӣ ташхис карда шавад." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Иҷро кардани ҷаласаи gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Иҷро кардани ҷаласаи gdb бе боргирии аломатҳои ислоҳи хатоҳо" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "Навсозӣ кардани %s бо пайгирии аломатии анбора" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Гузориши мушкилӣ ба барномае тааллуқ дорад, ки дигар насб нашудааст." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Мушкилӣ бо барномаи %s ба вуҷуд омад, ки аз лаҳзаи ба вуҷуд омадани нокомӣ " "тағйир ёфт." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Гузориши мушкилӣ вайроншуда мебошад ва наметавонад коркард шавад." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Гузориш ба бастае тааллуқ дорад, ки насб карда нашудааст." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Ҳангоми кӯшиши коркарди ин гузориши мушкилӣ хатогӣ ба вуҷуд омад:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Баста ё номи бастаи аслӣ муайян карда нашуд." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Браузер оғоз намешавад" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Барои кушодани %s браузер оғоз намешавад." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Лутфан, маълумоти ҳисоби худро барои системаи пайгирии хатогиҳои %s ворид " "кунед" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Мушкилии шабака" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Ба пойгоҳи иттилоотии нокомӣ пайваст шудан нашуд, лутфан, пайвасти Интернети " "худро санҷед." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Ҳофиза кофӣ нест" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Системаи шумо барои коркарди ин гузориши нокомӣ ҳофизаи кофӣ надорад." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Мушкилӣ гузориш дода намешавад:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Мушкилӣ аллакай дониста мебошад" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Ин мушкилӣ аллакай даргузориши хатогие, ки дар браузер намоиш дода шуд, " "гузориш дода шуда буд. Лутфан, санҷед, ки оё шумо метавонед ягон маълумоти " "бештарро илова кунед, ки метавонад барои таҳиягарон фоидаовар бошад." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Ин мушкилӣ аллакай ба таҳиягарон гузориш дода шуд. Ташаккур ба шумо!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Коркарди оғози дубора дар назди анҷом боздошта шуд, ва ҳамчун бомуваффақият " "ба анҷомрасида намоён мегардад." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Барои идома додан ягон тугмаеро зер кунед..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Шумо мехоҳед чӣ кор кунед? Имконот зерин аст:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Лутфан интихоб кунед (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i байт)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Баъд аз фиристодани гузориши мушкилӣ, лутфан, шаклро дар\n" "браузере, ки ба таври худкор кушода мешавад, пур кунед." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Фиристодани гузориш (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&Санҷиши маҳаллӣ" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Намоиш додани гузориш" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Нигоҳ доштани файли гузориш барои фиристодани баъдина ё нусхабардорӣ ба " "ҷойи дигар" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "Бекор кунед ва &нокомиҳои ояндаи ин версияи барномаро нодида гузаронед" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Бекор кардан" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Гузориши мушкилӣ ҳамчун:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Тасдиқ кардан" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Хатогӣ: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Маълумоти ҷамъшуда метавонад барои беҳтар кардани барнома ба таҳиягарон \n" "фиристода шавад. Ин метавонад якчанд дақиқаро гирад." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Маълумоти ҷамъшуда ба системаи пайгирии хатогиҳо фиристода шуда истодааст. \n" "Ин метавонад якчанд дақиқаро гирад." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Тайёр" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "ҳеҷ" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Интихобшуда: %s. Интихобҳои чандгона:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Интихобҳо:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Масири файл (Барои бекор кардан тугмаи \"Enter\"-ро зер кунед):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Файл вуҷуд надорад." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Ин директория мебошад." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Барои идома додан, шумо бояд ба суроғаи URL-и зерин ташриф оред:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Шумо метавонед ҳозир браузерро иҷро кунед, ё ки ин URL-ро дар браузери " "компютери дигар гузоред." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Ҳозир иҷро кардани браузер" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Ягон гузориши интихори нокомиҳо вуҷуд надорад. Барои маълумоти бештар " "фармони \"--help\"-ро истифода баред." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <гузориши мушкилии барнома | ID-и нокомӣ>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "миқдори нодурусти аргументҳо; барои кӯмаки кӯтоҳ фармони \"--help\"-ро " #~ "истифода баред" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "шумо бояд амалиёти маҳаллиро иҷро кунед (-s, -g, -o) ё ки файли санҷиши " #~ "ҳаққониятро пешниҳод кунед (--auth); барои кӯмаки кӯтоҳ \"--help\"-ро " #~ "истифода баред" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ин ҳангоми боздоштани қаблӣ ва вуҷуд омад, ва ба он оғози дубораи дурустро " #~ "иҷозат надод." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Ин ҳангоми гибернатсияи қаблӣ ба вуҷуд оамд, ва ба он оғози дубораи дурустро " #~ "иҷозат надод." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/th.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000152463�14416106601�011455� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Thai translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Thai <th@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: th\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "ยกเลิก" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "ตกลง" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "รายงานความผิดพลาด" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>ขออภัย เกิดข้อผิดพลาดภายใน</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "ถ้าคุณประสบปัญหาเพิ่มเติม ให้ลองเริ่มการทำงานของคอมพิวเตอร์ใหม่อีกครั้ง" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "ส่งรายงานความผิดพลาดเพื่อช่วยแก้ปัญหานี้" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "เพิกเฉยต่อปัญหาในภายหลังที่เกิดขึ้นบนโปรแกรมรุ่นนี้" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "แสดงรายละเอียด" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "_ตรวจสอบในเครื่อง" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "ปล่อยให้ปิดไป" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "ทำต่อไป" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>กำลังรวบรวมข้อมูลของปัญหา</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "กำลังรวบรวมข้อมูลซึ่งช่วยให้นักพัฒนาแก้ไขปัญหาที่คุณรายงานไป" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "กำลังอัปโหลดข้อมูลปัญหา" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>กำลังอัพโหลดข้อมูลของปัญหา</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "ข้อมูลที่รวบรวมมากำลังจะถูกส่งไปยังระบบติดตามบั๊ก " "การกระทำนี้จะใช้เวลาเพียงไม่กี่นาที" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "แฟ้มความล้มเหลว Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(binary data)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "ขออภัย โปรแกรม %s หยุดทำงานอย่างกะทันหัน" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "ขออภัย %s ปิดลงอย่างกะทันหัน" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "ขออภัย %s ประสบปัญหาภายใน" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "ส่งรายงานปัญหาไปยังผู้พัฒนา?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "ส่ง" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "บังคับให้ปิดไป" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "เรียกใหม่" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "โปรแกรม %s หยุดตอบสนองแล้ว" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "โปรแกรม \"%s\" หยุดตอบสนองแล้ว" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "แพกเกจ: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "ขออภัย เกิดปัญหาขณะติดตั้งซอฟต์แวร์" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "โปรแกรม %s ประสบปัญหาภายใน" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "โปรแกรม %s ปิดลงอย่างกะทันหัน" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "เพิกเฉยต่อปัญหาครั้งหน้าของประเภทนี้" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "ซ่อนรายละเอียด" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "ไดเรกทอรีปลายทางมีอยู่และไม่ว่างเปล่า" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "ชื่อผู้ใช้:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "รหัสผ่าน:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "กำลังรวบรวมข้อมูลของปัญหา" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "ข้อมูลที่รวบรวมมาสามารถส่งไปให้นักพัฒนาเพื่อให้ปรับปรุงโปรแกรมได้ " "การกระทำนี้จะใช้เวลาเพียงไม่กี่นาที" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "รวบรวมข้อมูลของระบบ" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "ต้องยืนยันตัวตนเพื่อรวบรวมข้อมูลของระบบเพื่อใช้รายงานปัญหาในครั้งนี้" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "การรายงานปัญหาระบบ" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "โปรดป้อนรหัสผ่านเพื่อเข้าถึงรายงานปัญหาของโปรแกรมระบบ" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "รายงานปัญหา" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "ดูที่ Man page สำหรับรายละเอียดเพิ่มเติม" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "ระบุชื่อแฟ้มปูมที่สร้างขึ้นโดย valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "นำ ไดเรกทอรี Sandbox (SDIR) ที่สร้างไว้ก่อนหน้านี้มาใช้ใหม่ " "หรือสร้างขึ้นมาถ้าเกิดไม่มีอยู่" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "ไม่ต้องสร้างหรือนำไดเรกทอรี Sandbox มาใช้ใหม่สำหรับสัญลักษณ์การดีบั๊ก " "แต่ให้อ้างอิงเฉพาะสัญลักษณ์การดีบั๊กที่ติดตั้งเท่านั้น" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "ใช้ไดเรกทอรีแคช (CDIR) ที่สร้างไว้ก่อนหน้านี้มาใช้ใหม่ " "หรือสร้างขึ้นมาถ้าเกิดไม่มีอยู่" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "รายงานความคืบหน้าของการดาวน์โหลด/ติดตั้งระหว่างติดตั้งแพกเกจไปที่ Sandbox" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "แฟ้มปฏิบัติการที่ทำงานภายใต้เครื่องมือตรวจสอบหน่วยความจำของ valgrind " "สำหรับตรวจหาการรั่วไหลของหน่วยความจำ" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "ติดตั้งแพกเกจพิเศษไปที่ Sandbox (สามารถระบุได้หลายครั้ง)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "ผิดพลาด: %s ไม่ใช่แฟ้มปฏิบัติการ กำลังหยุดทำงาน" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "ระบบของคุณอาจไม่เสถียรแล้วในขณะนี้ และต้องเริ่มการทำงานของระบบใหม่" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "ไม่ต้องเพิ่มการติดตามใหม่ลงในรายงาน แต่ให้เขียนไปที่ stdout" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "เริ่มวาระ gdb แบบโต้ตอบพร้อมบันทึกหลักของรายงาน (ละเว้น -o; " "ไม่ต้องเขียนรายงานใหม่)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "เขียนรายงานที่ปรับเปลี่ยนไปที่แฟ้มที่ระบุแทนที่จะเปลี่ยนรายงานดั้งเดิม" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "เอาบันทึกหลักออกจากรายงานหลังจากที่สร้างการติดตามสแตกใหม่แล้ว" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "แทนที่ CoreFile ของรายงาน" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "แทนที่ ExecutablePath ของรายงาน" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "แทนที่ ProcMaps ของรายงาน" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "สร้าง Sandbox " "แบบชั่วคราวและดาวน์โหลด/ติดตั้งแพกเกจที่จำเป็นและสัญลักษณ์การดีบั๊กในนั้น " "ถ้าไม่ใช้ตัวเลือกนี้ " "จะถือว่าแพกเกจที่จำเป็นและสัญลักษณ์การดีบั๊กได้ถูกติดตั้งไว้ในระบบแล้ว " "อาร์กิวเมนต์จะบ่งชี้ไปที่ไดเรกทอรีพื้นฐานการกำหนดค่าระบบแพกเกจ ถ้าคุณระบุ " "\"system\" ก็จะใช้เพียงแฟ้มกำหนดค่าของระบบ " "แต่จะสามารถทำได้เพียงติดตามความล้มเหลวที่เกิดขึ้นเมื่อใช้รุ่นที่กำลังใช้งานอย" "ู่ในขณะนี้เท่านั้น" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "รายงานความคืบหน้าในการดาวน์โหลด/ติดตั้งระหว่างติดตั้งแพกเกจไปที่ Sandbox" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "ขึ้นต้นการประทับเวลาในข้อความปูม สำหรับดำเนินการชุดงาน" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "สร้างและใช้ที่เก็บจากบุคคลที่สามจากแหล่งข้อมูลที่ระบุไว้ในรายงาน" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "ไดเรกทอรีแคชสำหรับแพกเกจที่ดาวน์โหลดใน Sandbox" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "ไดเรกทอรีสำหรับแพกเกจที่ยังไม่ได้แยก " "การเรียกใช้งานครั้งต่อไปก็จะถือว่าแพกเกจที่ดาวน์โหลดไว้ถูกแยกไปที่ Sandbox " "แล้ว" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "เส้นทางที่ไปยังแฟ้มที่มีข้อมูลการตรวจสอบความถูกต้องของฐานข้อมูลความล้มเหลว " "โดยจะถูกใช้เมื่อระบุ ID " "ความล้มเหลวเพื่ออัปโหลดการติดตามสแตกที่มีการติดตามใหม่ (เฉพาะเมื่อไม่ได้ระบุ " "-g, -o, หรือ -s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "แสดงการติดตามสแตกที่ติดตามใหม่และร้องขอการยืนยันก่อนที่จะส่งไปที่ฐานข้อมูลควา" "มล้มเหลว" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "เส้นทางที่ไปยังฐานข้อมูล sqlite ที่ทำซ้ำ (ค่าปริยาย: ไม่มีการตรวจสอบการทำซ้ำ)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "คุณไม่สามารถใช้ -C โดยไม่ใช้ -S ได้ กำลังหยุดทำงาน" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "ต้องการส่งเป็นสิ่งที่แนบมาหรือไม่? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "ดูเหมือนว่าแพคเกจนี้จะไม่ได้ถูกติดตั้งอย่างถูกต้อง" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "นี่ไม่ใช่แพกเกจ %s ทางการ โปรดลบแพกเกจบุคคลที่สามใด ๆ ออกและลองอีกครั้ง" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "กระบวนการที่ระบุไม่ใช่ของคุณ " "โปรดเรียกใช้โปรแกรมนี้ในฐานะเจ้าของกระบวนการหรือในฐานะผู้ดูแลระบบขั้นสูง" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "ID ของกระบวนการที่ระบุไม่ใช่ของโปรแกรมใด" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "สคริปต์อาการ %s ไม่ได้กำหนดแพกเกจที่ได้รับผลกระทบ" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "คุณไม่ใช่ผู้รายงานหรือผู้ติดตามรายงานปัญหานี้ " "หรือรายงานนี้อาจมีการเชื่อมโยงซ้ำ หรือถูกปิดไปแล้ว\n" "\n" "โปรดสร้างรายงานใหม่โดยใช้ \"apport-bug\"" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "คุณไม่ใช้ผู้รายงานปัญหานี้ " "การที่คุณทำเครื่องหมายปัญหานี้ว่ามีการเชื่อมโยงซ้ำง่ายกว่าการที่คุณย้ายความคิ" "ดเห็นและสิ่งที่แนบมาไปยังปัญหาใหม่\n" "\n" "เราขอแนะนำให้คุณรายงานปัญหาใหม่โดยใช้ \"apport-bug\" " "แล้วสร้างความคิดเห็นเกี่ยวกับปัญหาที่คุณรายงานนี้\n" "\n" "คุณต้องการดำเนินการต่อไปหรือไม่?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "ไม่มีการรวบรวมข้อมูลเพิ่มเติมใด ๆ" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "หลังจากที่ปิดข้อความนี้แล้ว โปรดคลิกบนหน้าต่างโปรแกรมเพื่อรายงานปัญหานี้" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop ไม่สามารถกำหนด ID โปรเซสของหน้าต่างได้" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "ระบุชื่อแพกเกจ" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "เพิ่มแท็กพิเศษไปในรายงาน สามารถระบุได้หลาย ๆ ครั้ง" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "เริ่มทำงานในโหมดรายงานปัญหา ต้องใช้ --package และ --pid พร้อมตัวเลือก " "หรือเพียง --pid ถ้าไม่ใส่อาร์กิวเมนต์ดังกล่าว " "ให้แสดงรายการอาการที่รู้ว่าเกิดขึ้น (ไม่ทำงานถ้าใส่เพียงอาร์กิวเมนต์เดียว)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "คลิกหน้าต่างเพื่อเป็นเป้าหมายสำหรับรายงานปัญหา" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "เริ่มทำงานในโหมดอัปเดตปัญหา สามารถใช้อาร์กิวเมนต์ --package พร้อมตัวเลือกได้" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "รายงานปัญหาเกี่ยวกับอาการ (ไม่ทำงานถ้าชื่ออาการถูกใส่เพียงอาร์กิวเมนต์)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "ระบุชื่อแพกเกจในโหมด --file-bug ถ้าระบุ --pid นี่จะเป็นตัวเลือก " "(ไม่ทำงานถ้าชื่อแพกเกจถูกใส่เพียงอาร์กิวเมนต์)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "ระบุโปรแกรมที่กำลังทำงานในโหมด --file-bug ถ้ามีการระบุ " "รายงานปัญหาจะประกอบด้วยข้อมูลเพิ่มเติม (ไม่ทำงานถ้า pid " "ถูกใส่เพียงอาร์กิวเมนต์)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "pid ที่ระบุเป็นโปรแกรมที่ทำงานค้างอยู่" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "รายงานความล้มเหลวจากแฟ้ม .apport หรือ .crash ที่ให้มาแทนที่กำลังรออยู่ใน %s " "(ไม่ทำงานถ้าแฟ้มถูกใส่เพียงอาร์กิวเมนต์)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "ในโหมดรายงานปัญหา บันทึกข้อมูลที่รวบรวมเป็นแฟ้มแทนที่จะรายงาน " "แฟ้มนี้สามารถเก็บไว้รายงานได้ทีหลังโดยใช้เครื่องอื่นได้" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "การดำเนินการนี้จะเป็นการเรียกใช้ apport-retrace " "ในหน้าต่างเทอร์มินัลเพื่อตรวจสอบความล้มเหลว" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "เรียกใช้วาระ gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "เรียกใช้วาระ gdb session โดยไม่ต้องดาวน์โหลดสัญลักษณ์การดีบั๊ก" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "อัปเดต %s พร้อมข้อมูลการติดตามสแตกเชิงสัญลักษณ์" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "รายงานปัญหานี้จะนำไปใช้กับโปรแกรมที่ไม่ได้ติดตั้งอีกต่อไป" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "มีปัญหาเกิดขึ้นกับโปรแกรม %s ซึ่งมีการเปลี่ยนแปลงตั้งแต่เกิดความล้มเหลวขึ้น" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "เกิดข้อผิดพลาดขณะพยายามประมวลผลการรายงานปัญหานี้:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "ไม่สามารถกำหนดแพกเกจหรือชื่อแพกเกจต้นฉบับได้" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "โปรดป้อนข้อมูลบัญชีของคุณสำหรับระบบติดตามปัญหาของ %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "ไม่สามารถเชื่อมต่อไปที่ฐานข้อมูลความล้มเหลวได้ " "โปรดตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณ" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "ระบบของคุณมีหน่วยความจำไม่เพียงพอสำหรับประมวลผลการรายงานปัญหานี้" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "ปัญหานี้ถูกรายงานอยู่แล้วในรายงานปัญหาที่แสดงในเว็บเบราว์เซอร์ " "โปรดตรวจสอบว่าคุณสามารถเพิ่มข้อมูลเพิ่มเติมที่อาจเป็นประโยชน์ต่อนักพัฒนาได้หร" "ือไม่" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "ปัญหานี้ถูกรายงานให้ทางผู้พัฒนาไปแล้ว ขอขอบคุณ!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "นี่เกิดขึ้นระหว่างการพักเครื่องครั้งที่ผ่านมา " "และป้องกันไม่ให้ระบบทำงานต่อได้อย่างถูกต้อง" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "นี่เกิดขึ้นระหว่างการไฮเบอร์เนตครั้งที่ผ่านมา " "และป้องกันไม่ให้ระบบทำงานต่อได้อย่างถูกต้อง" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "การดำเนินการที่กำลังจะดำเนินการต่อไปนั้นหยุดทำงานชั่วคราวเมื่อใกล้จะจบแล้ว " "และจะเสร็จสมบูรณ์โดยปกติ" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "โปรดเลือก (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i ไบต์)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "หลังจากที่รายงานปัญหาถูกส่งไปแล้ว โปรดกรอกข้อมูลลงในแบบฟอร์ม\n" "ในโปรแกรมท่องเว็บที่เปิดขึ้นมาโดยอัตโนมัติ" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "&ตรวจในเครื่อง" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "&เก็บแฟ้มรายงานไว้ส่งทีหลังหรือคัดลอกไปไว้ในที่อื่น ๆ" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "ยกเลิกและเพิกเ&ฉยต่อการขัดข้องครั้งหน้าของโปรแกรมรุ่นนี้" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&ยกเลิก" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "ข้อมูลที่รวบรวมมาสามารถส่งไปให้นักพัฒนาเพื่อให้ทำการปรับปรุงโปรแกรมได้\n" "การดำเนินการนี้จะใช้เวลาเพียงไม่กี่นาที" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "ข้อมูลที่รวบรวมมากำลังจะถูกส่งไปยังระบบติด\n" "ตามบั๊ก การดำเนินการนี้จะใช้เวลาเพียงไม่กี่นาที" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "เลือกแล้ว: %s. หลายตัวเลือก:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "เส้นทางมายังแฟ้ม (กด Enter เพื่อยกเลิก):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "คุณสามารถเปิดโปรแกรมท่องเว็บได้แล้วตอนนี้ หรือคัดลอก URL " "นี้ไปยังโปรแกรมท่องเว็บบนคอมพิวเตอร์เครื่องอื่น" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "ไม่มีรายงานปัญหาที่รออยู่ ลองเรียกคำสั่ง --help เพื่อดูข้อมูลเพิ่มเติม" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>ส่งรายงานปัญหาไปยังผู้พัฒนา?</b></big>\n" #~ "\n" #~ "หลังจากรายงานถูกส่งไปแล้ว โปรดกรอกรายละเอียดของฟอร์มที่เปิดในเว็บเบราเซอร์" #~ msgid "Application problem" #~ msgstr "ปัญหาของโปรแกรม" #~ msgid "_Send Report" #~ msgstr "ส่งรายงาน" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">ขออภัย แพ็คเก็จ \"%s\" " #~ "ล้มเหลวในการติดตั้งหรือปรับปรุง</span>" #~ msgid "&Report Problem..." #~ msgstr "&รายงานปัญหา..." #~ msgid "_Report Problem..." #~ msgstr "รายงานปัญหา" #~ msgid "Kernel problem" #~ msgstr "ปัญหาของเคอร์เนล" #~ msgid "Content of the report" #~ msgstr "รายละเอียดของรายงาน" #~ msgid "Package problem" #~ msgstr "ปัญหาของแพ็คเก็จ" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/tr.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000137133�14416106601�011464� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Turkish translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Turkish <tr@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: tr\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Vazgeç" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Tamam" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "Çökme raporu" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b> Üzgünüz, içsel bir hata oluştu.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "Daha fazla sorunla karşılaşırsanız bilgisayarınız yeniden başlatmayı deneyin." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "Bu sorunu çözmek için hata raporu gönder" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Bu yazılım sürümünün gelecekteki sorunlarını görmezden gel" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "Ayrıntıları Göster" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "Yerel olarak _İncele" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Kapalı Bırak" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Devam Et" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Sorunla ilgili bilgi toplanıyor</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Bilgi, bildirdiğiniz sorunun çözümünde geliştiricilere yardımı " "dokunabileceği için toplanıyor." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Sorun bilgileri yükleniyor" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Sorun bilgileri yükleniyor</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Toplanan bilgi hata izleme sistemine gönderiliyor. Bu, birkaç dakika " "sürebilir." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport çökme dosyası" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(ikili veri)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Üzgünüz, %s uygulaması beklenmedik şekilde durdu." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "Üzgünüz, %s beklenmedik bir şekilde kapandı." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Üzgünüz, %s içsel bir hatayla karşılaştı." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Hata raporu geliştiricilere gönderilsin mi?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Gönder" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Kapatmaya Zorla" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Yeniden başlat" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "%s uygulaması yanıt vermeyi durdurdu." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "\"%s\" programı yanıt vermeyi durdurdu." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Paket: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Üzgünüz, yazılım yüklenirken bir hatayla karşılaşıldı." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "%s uygulaması bir iç hata ile karşılaştı." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "%s yazılımı beklenmedik bir şekilde kapandı." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "İlerde oluşabilecek bu türden sorunları yok say" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "Ayrıntıları Gizle" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Kullanım: %s <rapor> <hedef dizin>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Hedef dizin zaten mevcut ve boş değil." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "Kullanıcı Adı:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "Parola:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "Sorun Bilgileri Toplanıyor" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Sorun bilgileri toplanıyor" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Toplanan bilgi, uygulamanın geliştirilmesi için geliştiricilere " "gönderilebilir. Bu, birkaç dakika sürebilir." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "Sorun Bilgileri Gönderiliyor" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Sistem bilgisi topla" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Bu sorun raporu için sistem bilgisi toplamada yetkilendirme gereklidir." #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Sistem problem raporları" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Lütfen sistem programlarının problem raporlarına ulaşmak için şifrenizi girin" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Bir sorunu bildir..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Geliştiricilere bir arıza bildir" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Ayrıntılar için man sayfasına bakın." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "valgrind tarafından oluşturulan günlük dosya adını belirtin" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "önceden oluşturulmuş sanbox dizinini (SDIR) tekrar kullan veya bulunmuyorsa " "oluştur" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "ek hata ayıklayıcı sembolleri için sandbox dizinini tekrar kullanma veya " "oluşturma ancak, sadece yüklü hata ayıklama sembollerini kullan." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "önceden oluşturulmuş önbellek dizinini (CDIR) tekrar kullan veya " "bulunmuyorsa oluştur" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "paketleri sandbox içine kurarken indirme/yükleme sürecini bildir" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "bellek sızma denetimi için valgrind'in memcheck aracı altında çalışan " "uygulama" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Fazladan bir paketi sandbox içine yükle (birden çok kez belirtilebilir)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Hata: %s yürütülebilir değil. Durduruluyor." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Sisteminiz şimdi kararsız hale gelebilir ve yeniden başlatılması gerekebilir." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Raporda yeni işaretlemeler yapmak yerine bunları stdout'a yazın." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Raporun son dökümü ile bir interaktif gdb oturumu başlat (-o yoksayılır; " "raporun üzerine yazmaz)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Asıl raporu değiştirmek yerine düzeltilmiş raporu verilen dosyaya yaz" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Kutup yığınını küme izleme düzeltmesinden sonra rapordan geri al" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Raporun ÇekirdekDosyası'nı Geçersiz Kıl" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Raporun çalıştırılabilir yolunu geçersiz kıl (ExecutablePath)" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Raporun ProcMap'lerini Geçersiz Kıl" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Raporların Yedek bilgisini onar" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Geçici bir test alanı oluşturup indirdiğiniz gerekli paketleri ve böcek " "temizleme sembollerini buraya kurun; bu seçenek olmadan gerekli paketlerin " "ve böcek temizleme sembollerinin daha önce sisteme yüklendiğini " "varsayacaktır. Deliller paketleme sistemi yapılandırma ana dizinini; eğer " "\"sistem\" olarak belirlerseniz sistem yapılandırma dosyalarını işaret eder, " "bu durumda yalnızca şu anda çalışan dağıtımda meydana gelen çökmelerin " "kaynağına gidebilir." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "Paketler sandbox içine kurulurken indirme/yüklemeyi raporla" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "Yığın işlemi için kayıt iletilerinin başına zaman etiketleri ekle" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Raporlarda kaynağı tanımlanmış üçüncü parti depoları oluştur ve kullan" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "Sandbox içine indirilmiş paketler için önbellek dizini" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Açılmamış paketlerin dizini. Sonraki çalıştırmalar, daha önceden indirilmiş " "herhangi paketin de bu sandbox'a çıkartılacağını varsayacak." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Çökme Veritabanı Doğrulama bilgisini içeren bir dosya yolu belirtin. Bu " "çökme ID'si belirlenirken kaynağına ulaşılmış yığın izlerinini yüklemede " "kullanılır. (Eğer -g, -o veya -s belirtiymediyse)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Yeniden oluşturulmuş yığın izlerini göster ve bunları çökme veritabanına " "göndermeden önce onay al." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "Kopya sqlite veritabanının yolu (varsayılan: kopya kontrolü yok)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "-S olmaksızın -C kullanamazsınız. Durduruluyor." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Eklenti olarak gönderilsinler mi? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Bu paket doğru yüklenmiş gibi görünmüyor." #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Bu resmi bir %s paketi değil. Lütfen herhangi bir üçüncü parti paketini " "kaldırıp tekrar deneyin." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Kurulmuş eski paket sürümlerine sahipsiniz. Lütfen aşağıdaki paketleri " "yükseltin ve ardından sorunun yine ortaya çıkıp çıkmadığını kontrol edin.\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "bilinmeyen program" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Üzgünüm, \"%s\" programı beklenmedik şekilde kapandı" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s'de problem" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Bilgisayarınız otomatik olarak sorunu analiz etmek ve geliştiricilere rapor " "göndermek için yeterli boş belleğe sahip değil." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Geçersiz sorun raporu" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Bu hata raporuna erişmeye izniniz yok." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Hata" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Bu raporu işlemek için yeterli disk alanı yok." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Hiçbir paket belirtilmemiş" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Bir paket veya PID belirtmelisiniz. Daha fazla bilgi için --help çıktısına " "bakın." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "İzin verilmedi" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Belirtilen süreç size ait değil. Lütfen bu programı süreç sahibi veya root " "olarak çalıştırın." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Geçersiz PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Belirlenen işlem ID'si bir programa ait değil." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Symptom betiği %s etkin bir paket tanımlamadı" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "%s pakedi bulunamadı" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Rapor oluşturulamıyor" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "Sorun raporu güncelleniyor" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "Bu problem raporunun bildireni ya da takipçisi değilsiniz. ya da rapor çift " "kopya veya halihazırda kapandı.\n" "\n" "Lütfen ''apport-bug'' kullanarak yeni bir rapor oluşturun." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Bu problem raporunun bildireni değilsiniz. Yorumlarınızı ve eklentilerinizi " "yeni bir hataya taşımaktansa bir hatayı bir diğerinin kopyası olarak " "işaretlemek çok daha kolaydır.\n" "\n" "Daha sonra size: ''apport-bug'' kullanarak yeni bir hata raporu " "oluşturmanızı ve oluşturduğunuz bu hata ile ilgili bir yorum yapmanızı " "öneriyoruz.\n" "\n" "Gerçekten devam etmek istiyor musunuz?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Hiçbir ek bilgi toplanmadı." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Ne tür bir sorun bildirmek istiyorsunuz?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Bilinmeyen belirti" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "\"%s\" belirtisi bilinmiyor." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Bu iletiyi kapattıktan sonra lütfen bununla ilgili sorunu bildirmek için bir " "uygulama penceresine tıklayın." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop, pencrenin işlem kimliğini saptamada başarısız oldu" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <rapor numarası>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Paket adı belirtin." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Rapora fazladan bir etiket ekleyin. Birçok kez belirtilmiş olabilir." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Hata dosyalama kipinde başlat. --package ve isteğe bağlı --pid, veya sadece -" "-pid gerektirir. Eğer hiçbiri belirtilmezse, bilinen belirtilerin listesini " "göster. (Kastedilen; eğer tek bir argüman verilirse.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "Bir sorunu bildirmek için hedef olarak bir pencereye tıklayın." #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "Hata güncelleme kipinde başlat. Seçime bağlı --package alınabilir." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Bir belirti için hata raporu dosyala. (Kastedilen; eğer belirti adı sadece " "argüman olarak verilirse.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "--dosya-hata modunda paket adını belirtin. Bir -pid belirtilmişse, bu " "seçenek opsiyoneldir. (Paket adı tek argüman olarak verilmişse uygulanır.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "--file-bug kipinde çalışacak bir program belirtebilirsiniz. Eğer " "belirtilmişse, hata raporu daha fazla ayrıntı içerecektir.(PID 'in tek " "parametre olarak verilmesi durumu kastedilmiştir)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Belirtilen pid (program id) askıdaki bir uygulama" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Hata raporunu %s'te beklemekte olanlar yerine .apport veya .crash " "dosyalarından bildirin. (Eğer dosya adı verilen tek argüman ise)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "Hata belirtme kipinde, toplanan bilgileri raporlamak yerine onları bir " "dosyaya kaydedin. Bu dosya daha sonra farklı bir makineden raporlanabilir." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Apport sürüm numarasını yazdır." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "Bu, çökmeyi incelemek için bir uçbirim penceresinde \"apport-retrace\" " "komutunu çalıştıracak." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "gdb oturumunu çalıştır" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "gdb oturumunu böcek temizleme simgelerini indirmeden çalıştır" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "%s dosyasını tümüyle sembolik küme iziyle güncelle" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Bu problem raporu, artık yüklü olmayan bir programa ait." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" "Çökme olduktan sonra değişime uğrayan %s yazılımıyla ilgili sorun oluştu." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Bu sorun raporu hasarlı, bu nedenle işlenemiyor." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Rapor kurulmamış bir pakete ait." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Bu sorun raporunu işlemeye çalışırken bir hata oluştu:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Paket ya da kaynak kod paketi adı belirlenemedi." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Ağ tarayıcı başlatılamıyor" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "%s açmak için ağ tarayıcı başlatılamıyor." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Lütfen %s hata takip sistemi için hesap bilgilerinizi girin." #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Ağ sorunu" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Çöküş veritabanına bağlanılamıyor, lütfen internet bağlantınızı kontrol edin." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Yetersiz bellek" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "Sisteminiz bu çökme raporunu işlemek için yeterli belleğe sahip değil." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Sorun raporlanamadı:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Sorun önceden bildirilmiş" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Bu sorun web tarayıcısında görüntülenmekte olan hata raporuyla önceden " "bildirilmiş. Lütfen geliştiricilere yardımcı olabilecek ek bir bilgi ekleyip " "ekleyemeyeceğinize bakın." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Bu sorun daha önce geliştiricilere bildirildi. Teşekkür ederiz!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Kalan işlem bitmesine çok yakın bir yerde takıldı ve normal bir biçimde " "tamamlanmış gibi görünecek." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Devam etmek için bir tuşa basın..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Ne yapmak istersiniz? Seçenekleriniz:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Lütfen seçin (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i sekiz ikil)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Problem raporu gönderildikten sonra, lütfen web tarayıcınızda otomatik\n" "olarak açılan sayfada yer alan formu doldurun." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "Rapor &Gönder (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "Yerel olarak &İncele" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "Rapor Görüntü&le" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Rapor dosyasını, daha sonra gönderme veya başka bir yere kopyalanması için " "saklayın." #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Programın bu sürümünün gelecekteki çökmelerini iptal et ve &yoksay" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Vazgeç" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Sorun rapor dosyası:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Onayla" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Hata: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Toplanan bilgiler geliştiriciler için uygulama geliştirmek için " "gönderilebilir. \n" "Bu birkaç dakika sürebilir." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Toplanan bilgiler hata takip sistemi için gönderiliyor.\n" "Bu birkaç dakika sürebilir." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Bitti" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "hiçbiri" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Seçili: %s. Birden fazla seçenek:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Seçenekler:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Dosya yolu (Iptal etmek için girin):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Dosya mevcut değil." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Bu bir dizin." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Devam etmek için, aşağıdaki URL'yi ziyaret etmelisiniz:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Şimdi tarayıcıda açabilirsiniz, ya da bu URL'yi başka bilgisayardaki bir " "tarayıcıya kopyalayabilirsiniz." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Tarayıcıyı aç" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "Bekleyen çökme raporu yok. Daha fazla bilgi için --help 'i deneyin." #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Tam rapor (önerilen; %s)" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Sorun oluştuğunda yapmakta olduğunuz işlemin gizliliği yoksa (parola ya da " #~ "başka kişisel bilgilerin girilmesi gibi), sorunu rapor ederek uygulamanın " #~ "geliştirilmesine yardım edebilirsiniz." #~ msgid "_Send Report" #~ msgstr "Rapor _Gönder" #~ msgid "Restart _Program" #~ msgstr "Programı _Yeniden Başlat" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Programın bu sürümünün gelecekteki çökmeleri göz ardı et." #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Bu, rapordan kimi büyük öğeleri çıkaracak. Bunlar geliştiriciler için çok " #~ "kullanışlı bilgiler olsa da, eğer yavaş bir internet bağlantınız varsa " #~ "yüklemeniz için fazla büyük olabilir." #~ msgid "_Report Problem..." #~ msgstr "Sorunu _Bildir..." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Sorunu bildirerek geliştiricilerin paketi düzeltmelerine yardım " #~ "edebilirsiniz." #~ msgid "Content of the report" #~ msgstr "Raporun içeriği" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Sisteminiz ciddi bir çekirdek sorunu ile karşılaştı." #~ msgid "Package problem" #~ msgstr "Paket sorunu" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Bu sorunu rapor ederek geliştiricilerin düzeltmesinee yardım edebilirsiniz." #~ msgid "Kernel problem" #~ msgstr "Çekirdek sorunu" #~ msgid "Application problem" #~ msgstr "Uygulama sorunu" #~ msgid "Generic error" #~ msgstr "Genel hata" #~ msgid "&Report Problem..." #~ msgstr "&Sorunu Bildir..." #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "Üzgünüm, %s beklenmedik bir şekilde kapandı." #~ msgid "&Send" #~ msgstr "&Gönder" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "" #~ "%s uygulaması %s tarihinde %s saatinde beklenmedik şekilde kapatıldı." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Bu özgün bir %s paketi değil" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Özür dilerim, \"%s\" paketi kurulum " #~ "veya güncelleme hatası alındı.</span>" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Geliştiricilerine sorunu rapor gönderilsin mi?</b></big>\n" #~ "\n" #~ "Sorunu raporladıktan sonra, otomatik olarak açılan web tarayıcısında formu " #~ "doldurun gönderildi." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Tam rapor gönderin(önerilen; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "&Özet rapor gönderin (düşük ağ bağlantısı; %s)" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "\"%s\" paketinin kurulumu veya güncellenmesi başarısız." #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "Yanlış sayıda argüman; kısa bir yardım için --help 'i kullanın" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "Ya bir yerel işlem yapmalı (-s, -g ve -o gibi) veya Kimlik denetleme dosyası " #~ "(--auth); bak --yardım için kısa bir yardım" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Eğer güvenlik gerektiren bir işlem yapmıyorsanız (şifre veya başka\n" #~ "özel bilgiler girmek gibi), hata raporu göndererek uygulamanın " #~ "geliştirilmesine\n" #~ "yardımcı olabilirsiniz." #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Bu, geçmişteki bir askıya alma sırasında meydana geldi ve uygun bir şekilde " #~ "sürdürülmesini engelledi." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Bu, geçmişteki bir hazırda bekletme işlemi sırasında meydana geldi ve uygun " #~ "bir şekilde sürdürülmesini engelledi." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Kısa rapor (yavaş internet bağlantısı; %s)" #~ msgid "&Details..." #~ msgstr "&Detaylar..." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "Üzgünüz, %s uygulaması beklenmedik bir şekilde kapandı." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Sisteminiz şu an kararsızlaşabilir ve yeniden başlatılması gerekebilir." �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/ug.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000151063�14416106601�011450� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Uighur translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: bilgeturghun <bilgeks@gmail.com>\n" "Language-Team: Uighur <ug@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: ug\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "Apport" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "ئەمەلدىن قالدۇر" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "تامام" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "يىمىرىلىش دوكلاتى" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>كەچۈرۈڭ، ئىچكى خاتالىق يۈز بەردى.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" "ئەگەر تېخىمۇ كۆپ مەسىلىنى بايقىسىڭىز، كومپيۇتېرنى قايتا قوزغىتىشنى سىناڭ." #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" "بۇ مەسىلىنى ئوڭلاشقا ياردەم قىلىش ئۈچۈن خاتالىق دوكلاتىدىن بىرنى يوللاڭ" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "بۇ پروگرامما نەشرىنىڭ كەلگۈسىدىكى مەسىلىلىرىگە پەرۋا قىلما" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "تەپسىلاتلارنى كۆرسەت" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "يەرلىكتە تەكشۈر(_E)" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "تاقاق پېتى قالدۇر" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "داۋاملاشتۇر" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>مەسىلە ھەققىدە ئۇچۇرلارنى توپلاۋاتىدۇ</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "سىز مەلۇم قىلغان مەسىلىنى ئىجادىيەتچىلەرنىڭ تۈزىتىشىگە ياردىمى بولسۇن دەپ " "ئۇچۇرلار توپلاندى." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "مەسىلىلەر ھەققىدىكى ئۇچۇرلارنى يېڭىلاۋاتىدۇ" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>مەسىلە ھەققىدىكى ئۇچۇرلارنى يۈكلەۋاتىدۇ</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "توپلانغان ئۇچۇرلارنى كەمتۈك باشقۇرۇش سىستېمىسىغا ئەۋەتمەكچى. بۇنىڭغا ئازراق " "ۋاقىت كېتىدۇ." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport چاتاق ھۆججىتى" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(ئىككىلىك سانلىق-مەلۇمات)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "كەچۈرۈڭ، پروگرامما %s تاسادىپىي توختاپ قالدى." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "كەچۈرۈڭ، %s تاسادىپىي تاقالدى." #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "كەچۈرۈڭ، %s ئىچكى خاتالىققا يولۇقتى." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "بۇ مەلۇماتنى ئىجادىيەتچىگە ئەۋەتسۇنمۇ؟" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "يوللا" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "مەجبۇرىي يېپىلغان" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "قايتا ئىجرا قىل" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "پروگرامما %s جاۋاب قايتۇرۇشتىن توختىدى." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "پروگرامما «%s» جاۋاب قايتۇرۇشتىن توختىدى." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "بوغچا: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "كەچۈرۈڭ، يۇمشاق دېتال ئورناتقاندا بىر خاتالىق كۆرۈلدى." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "پروگرامما %s نىڭدا بىر ئىچكى خاتالىق يۈز بەردى." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "بۇ %s ئەپ تاسادىپىي تاقالدى." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "بۇ تۈردىكى كەلگۈسىدىكى مەسىلىگە سەل قاراش" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "تەپسىلاتلارنى يوشۇر" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "ئىشلىتىش ئۇسۇلى: %s <مەلۇمات> <نىشان مۇندەرىجە>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "نىشان مۇندەرىجە بار ھەم بوش ئەمەس." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "ئىشلەتكۈچى ئاتى:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "ئىم:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "چاتاق ھەققىدىكى ئۇچۇرلارنى توپلاۋاتىدۇ" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "مەسىلىلەرگە ئائىت ئۇچۇرلارنى توپلاۋاتىدۇ" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "ئىجادىيەتچىنىڭ پروگرامما ئىقتىدارىنى ياخشىلىشىغا قۇلايلىق يارىتىش ئۈچۈن، " "توپلانغان ئۇچۇرلار ئىجادىيەتچىگە يوللىنىدۇ. بۇنىڭغا بىرقانچە مىنۇت كېتىدۇ." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "چاتاق ھەققىدىكى ئۇچۇرلارنى يۈكلەۋاتىدۇ" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "سىستېما ئۇچۇرلىرىنى توپلا" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "بۇ مەسىلىنى مەلۇم قىلىشتا سىستېما ئۇچۇرلىرىنى توپلاش كېرەك، بىراق بۇنىڭ " "ئۈچۈن كىملىك دەلىللەش زۆرۈردۇر." #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "سىستېما مەسىلە دوكلاتى" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "ئىمنى كىرگۈزۈپ سىستېما مەسىلە دوكلاتىنى كۆرۈڭ." #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "مەسىلىنى مەلۇم قىلىش..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "خاتالىقنى ئىجادىيەتچىگە مەلۇم قىلىدۇ" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "تېخىمۇ كۆپ تەپسىلاتنى man قوللانمىسىدىن كۆرۈڭ." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "بۇ valgrind ھاسىل قىلىدىغان خاتىرە ھۆججىتىنىڭ ئىسمىنى بەلگىلەڭ." #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "ئىلگىرى قۇرۇلغان sandbox مۇندەرىجىسى (SDIR) نى قايتا ئىشلىتىدۇ ياكى ئەگەر ئۇ " "مەۋجۇت بولمىسا، ئۇنى قۇرىدۇ" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "قوشۇمچە سازلاش بەلگىسى ئۈچۈن sandbox مۇندەرىجىسىنى قۇرمايدۇ ياكى قايتا " "ئىشلەتمەيدۇ ئەمما پەقەت ئورنىتىلغان سازلاش بەلگىلىرىگە تايىنىدۇ." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "ئىلگىرى قۇرۇلغان غەملەك مۇندەرىجە (CDIR) نى قايتا ئىشلىتىدۇ ياكى ئەگەر " "مەۋجۇت بولمىسا ئۇنى قۇرىدۇ" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "ئورنىتىش بوغچىسى sandbox قا كىرسە چۈشۈرۈش/ئورنىتىش جەريانىنى دوكلات قىلىدۇ" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "ئەسلەك ھالقىشنى بايقاش ئۈچۈن ئىجراچان پىروگراممىلار valgrind ئەسلەك تەكشۈرۈش " "قورالىنىڭ ئاستىدا ئىجرا قىلىنىدۇ" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "قۇم خالتىسى ئىچىگە قوشۇمچە بوغچىنى ئورنىتىش(بىر قانچە قېتىم كۆرسىتىشكە " "بولىدۇ)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "خاتالىق: %s نى ئىجرا قىلغىلى بولمايدۇ. توختىتىۋاتىدۇ." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "سىستېمىڭىزنىڭ تۇراقسىز بولۇپ قېلىش ئېھتىماللىقى بار، قايتا قوزغىتىش " "زۆرۈرىيىتى باردەك قىلىدۇ." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "بۇ يېڭى چىققانلىرىنى مەلۇماتقا يازماي stdout قا يازسۇن." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "مەلۇماتنىڭ غول تۆكمىسىگە نىسبەتەن تەسىرلىشىشچان gdb ئەڭگىمەسىنى باشلايدۇ(-o " "غا پەرۋا قىلمايدۇ؛ مەلۇماتنى قاپلىمايدۇ)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "ئەسلىدىكى مەلۇماتقا يازماي كۆرسىتىلگەن ھۆججەتكە يازسۇن." #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "stack ئىزلىشى قايتا ھاسىللانغاندىن كېيىن، غول تۆكمىنى(core dump) مەلۇماتتىن " "چىقىرىۋېتىش" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "دوكلاتنىڭ CoreFile نى قاپلاش" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "دوكلاتنىڭ ExecutablePath نى قاپلاش" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "دوكلاتنىڭ ProcMaps نى قاپلاش" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "دوكلاتنىڭ بوغچا ئۇچۇرىنى قايتا قۇرۇش" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "ۋاقتىنچە قۇم ساندۇقى قۇرىدۇ ھەم قاچىلاش بوغچىسىنى يۈكلەيدۇ/قاچىلايدۇ.ئەگەر " "بۇ تاللانما ئىشلىتىلمىسە، سىستېمىغا لازىملىق دېتالنى قاچىلايدۇ. ئەگەر سىز " "سىستېما بەلگىلىمىسىڭىز، سىستېما سەپلىمىسىنى ئىشلىتىدۇ، شۇنىڭ بىلەن ئىجرا " "قىلىنىۋاتقان سىستېمىنى ھالاك قىلىدۇ." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "بوغچىلارنى قۇم خالتىسى ئىچىگە ئورناتقاندىكى چۈشۈرۈش/ئورنىتىش جەريانىنى مەلۇم " "قىلىش" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" "ئۇچۇر خاتىرىلەشتىن بۇرۇن ۋاقىتنى خاتىرىلەڭ، بۇ قېتىملىق مەشغۇلاتنى " "تەمىنلەيدۇ." #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "دوكلاتتا كۆرسىتىلگەن ئەسلى ئورۇندىن پايدىلىنىپ ئۈچىنچى تەرەپ خەزىنىسىنى " "ياسايدۇ ۋە ئىشلىتىدۇ." #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "قۇم خالتىسى ئىچىگە چۈشۈرۈلگەن بوغچىلارنىڭ غەملەك مۇندەرىجىسى" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "يېيىلمىغان بوغچىلارنىڭ مۇندەرىجىسى. كېيىن ئىجرا قىلىدىغان چاغدا، چۈشۈرۈلگەن " "بوغچىلار مۇشۇ يەرگە يېيىلىدۇ." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "يىمىرىلىش ساندانىنى زىيارەت قىلىش ئۇچۇرى ھۆججىتىنىڭ يولىنى ئۆز ئىچىگە " "ئالىدۇ. بۇ تاللانما مۇئەييەن يىمىرىلىش كودىدا ئىزلاشنىڭ قايتۇرما سازلاش " "ئۇچۇرى ئۈچۈن ئىشلىتىلىدۇ. (ئىشلەتكۈچى -g, -o, ياكى -s نى بەلگىلىگەن " "بولمىسىلا)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "قايتۇرغان ئىزلاش ئۇچۇرىنى كۆرسىتىدۇ ھەمدە يىمىرىلىش ساندىنىغا يوللاش " "يوللىماسلىقنى جەزملەشنى سورايدۇ." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "تەكرارلانغان sqlite ساندىنىنىڭ يولى.(كۆڭۈلدە تەكرارلىنىشنى تەكشۈرمەيدۇ)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" "سىز -S نى بەلگىلىمەي تۇرۇپ -C تاللانمىنى ئىشلىتەلمەيسىز، توختىتىۋاتىدۇ." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "بۇ قوشۇلما ھۆججەتلەرنى ئەۋەتسە بولامدۇ؟[y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "مەزكۇر بوغچا توغرا ئورنىتىلمىغاندەك قىلىدۇ" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "بۇ رەسمىي %s بوغچىسى ئەمەس. ئۈچىنچى تەرەپ بوغچىسىنى چىقىرىۋېتىپ، قايتا سىناڭ." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "بەزىبىر كونا بوغچىلار بار ئىكەن. تۆۋەندىكى بوغچىلارنى يۈكسەلدۈرگەندىن كېيىن " "يەنە تەكشۈرۈپ كۆرۈڭ:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "نامەلۇم پروگرامما" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "كەچۈرۈڭ، پروگرامما «%s» ئويلىمىغان يەردىن تاقىلىپ قالدى" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "مەسىلە %s نىڭدا" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "مەسىلىنى ئاپتوماتىك ئانالىز قىلىش ۋە ئىجادىيەتچىگە مەلۇمات يوللاشقا كېرەكلىك " "ئەسلەك يېتەرلىك ئەمەس ئىكەن." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "مەلۇمات ئىناۋەتسىز" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "بۇ مەسىلىنى مەلۇم قىلىش ھوقۇقىڭىز يوق." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "خاتالىق" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "مەزكۇر مەلۇماتنى بىر تەرەپ قىلىشقا كېرەكلىك دىسكا بوشلۇقى يوق." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "بوغچا كۆرسىتىلمىگەن." #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "بوغچا ياكى بىر PID نى كۆرسىتىڭ. تەپسىلاتلار ئۈچۈن --help نى ئىشلىتىڭ." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "ھوقۇقىڭىز يەتمىدى" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "بۇ سىزنىڭ پروگراممىڭىز ئەمەس. مەزكۇر پروگراممىنى ئۆزىڭىزنىڭ ياكى root نىڭ " "ھوقۇقىدا ئىجرا قىلدۇرۇڭ." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "ئىناۋەتسىز PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "كۆرسىتىلگەن PID مەزكۇر پروگراممىنىڭ PID ئەمەس." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "ئەھۋال قوليازما %s تەسىر كۆرسىتىدىغان بوغچىنى بەلگىلىمىگەن" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "بوغچا %s مەۋجۇت ئەمەس" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "مەلۇمات قۇرالمىدى" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "مەلۇماتىنى يېڭىلاۋاتىدۇ" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "سىز بۇ مەسىلىنى مەلۇم قىلغان كىشى ئەمەس، ياكى مەلۇمات تەكرارلانغان ياكى " "ئاللىقاچان تاقالغان.\n" "\n" "«apport-bug» نى ئىشلىتىپ يېڭىدىن مەلۇمات تەييارلاڭ." #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "سىز بۇ مەسىلىنى مەلۇم قىلغۇچى ئەمەس. يېڭى كەمتۈك دەپ مەلۇم قىلغاندىن كۆرە، " "باشقا كەمتۈك بىلەن ئوخشاش دەپ بەلگە قويۇش تېخىمۇ ئاسان.\n" "\n" "ئارقىدىن، «apport-bug» نى ئىشلىتىپ، كەمتۈك مەلۇم قىلىپ، مەلۇماتنىڭ ئىچىگە " "كەمتۈك ھەققىدىكى ئىزاھاتنى يېزىشىڭىزنى تەۋسىيە قىلىمىز.\n" "\n" "راستلا داۋاملاشتۇرامسىز؟" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "قوشۇمچە ئۇچۇرلار توپلانمىدى." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "قانداق مەسىلىنى مەلۇم قىلماقچى؟" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "نامەلۇم ھادىسە" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "ھادىسە «%s» نامەلۇم." #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "ئۇچۇرنى ياپقاندىن كېيىن پروگرامما كۆزنىكىنى چېكىپ، بۇ مەسىلىنى مەلۇم قىلىڭ." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop كۆزنەكنىڭ ئىجرا ID سىنى تېپىشتا مەغلۇپ بولدى" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "%prog <مەلۇمات نومۇرى>" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "بوغچا ئاتىنى كۆرسىتىپ بېرىڭ." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "دوكلاتقا يېڭىدىن خەتكۈش قوشۇڭ، كۆپ قېتىم بەلگىلەشكە بولىدۇ." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "كەمتۈك يېزىش ھالىتىدە باشلايدۇ. ئىجرا قىلغاندا --package ۋە --pid ياكى " "پەقەتلا --pid تاللانمىسىنى يازسىلا بولىدۇ. ئەگەر ھېچقايسى يېزىلمىسا، " "كۆرۈلگەن ئالامەتلەرنىڭ تىزىمىنى كۆرسىتىدۇ. (پەقەت يالغۇز ئارگۇمېنت " "بېرىلگەندىلا.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "خاتالىق دوكلاتىنى تولدۇرۇش ئۈچۈن كۆزنەكنى نىشان قىلىپ چېكىڭ" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "كەمتۈك يېڭىلاش ھالىتىدە قوزغىتىش. --package دېگەن تاللانمىنى ئىشلىتىشكە " "بولىدۇ." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "ھادىسە ھەققىدە مەلۇمات تەييارلاڭ. (Implied if symptom name is given as only " "argument)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "--file-bug ھالىتىدە بوغچا ئاتىنى كۆرسىتىڭ. ئەگەر --pid كۆرسىتىلگەن بولسا، " "بۇنى كۆرسەتمىسىمۇ بولىدۇ.(Implied if package name is given as only argument.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "--file-bug ھالىتىدە ئىجرا بولۇۋاتقان پروگراممىنى كۆرسىتىڭ. ئەگەر بۇ " "كۆرسىتىلسە، كەمتۈك مەلۇماتىغا تېخىمۇ كۆپ ئۇچۇرلار قوشۇلىدۇ. (Implied if pid " "is given as only argument.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" "تەمىنلەنگەن pid بولسا بىر ئېسىلىپ قالغان(توختاپ قالغان) پروگرامما ئىكەن." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "چاتاق مەلۇماتىنى %s نىڭدىكى كۈتۈپ تۇرغان ھۆججەتنى ئەمەس بەلكى بېرىلگەن " ".apport ياكى .crash ھۆججىتىنى ئىشلىتىپ يوللاش(پەقەت ھۆججەت ئاتى ئارگۇمېنت " "شەكىلدە بېرىلگەندىلا.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "كەمتۈك يېزىش ھالىتىدە، توپلانغان ئۇچۇرلارنى مەلۇم قىلماي ھۆججەتكە ساقلاپ " "قويۇشقا، بۇ ھۆججەتنى كېيىن باشقا كومپيۇتېر ئارقىلىق يوللاشقىمۇ بولىدۇ." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Apport نىڭ نەشر نومۇرىنى بېسىپ چىقىرىدۇ." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" "crash نى تەكشۈرۈش ئۈچۈن apport-retrace تېرمىنال كۆزنىكىدە ئىجرا بولىدۇ." #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "gdb ئەڭگىمەسىنى ئىجرا قىلىش" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "سازلاش بەلگىلىرىنى چۈشۈرمەيلا gdb ئەڭگىمەسىنى ئىجرا قىلىش" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "%s نى تولۇق بەلگىلەر بىلەن يېڭىلاش" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "بۇ دوكلات زادىلا ئورنىتىلىپ باقمىغان پروگراممىغا ئىشلىتىلىدۇ." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "توقۇنۇشتا ئۆزگەرگەن پروگرامما %s تە خاتالىق كۆرۈلدى." #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "بوغچا بۇزۇلغان بولغاچقا بىر تەرەپ قىلغىلى بولمىدى." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "مەلۇمات ئورنىتىلمىغان بوغچىغا تەۋە ئىكەن." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" "بۇ مەسىلە ھەققىدىكى مەلۇماتنى بىر تەرەپ قىلاي دېگەندە خاتالىق يۈز بەردى:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "بوغچا ياكى مەنبە كود بوغچىسىنىڭ نامىنى بېكىتكىلى بولمىدى." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "توركۆرگۈنى قوزغاتقىلى بولمىدى" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "%s نى كۆرىدىغان توركۆرگۈنى قوزغاتقىلى بولمىدى." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "كەمتۈك باشقۇرۇش سىستېمىسى %s غا ھېسابات ئۇچۇرىڭىزنى كىرگۈزۈڭ." #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "توردىكى مەسىلە" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "crash ساندىنىغا باغلىنالمىدى، ئىنتېرنېت باغلىنىشىنى تەكشۈرۈپ كۆرۈڭ." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "ئەسلەك يېتىشمىدى" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" "سىستېمىڭىزدا مەزكۇر crash مەلۇماتىنى بىر تەرەپ قىلىشقا يېتەرلىك ئەسلەك يوق." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "مەسىلىنى مەلۇم قىلغىلى بولمىدى:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "مەسىلە ئاللىقاچان ئايدىڭلاشقان" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "توركۆرگۈدىكى كەمتۈك دوكلاتىدا بۇ مەسىلە ئاللىقاچان مەلۇم قىلىنغان. تەكشۈرۈپ " "كۆرۈڭ، ئەگەر سىزنىڭ مەلۇماتىڭىزدا تېخىمۇ كۆپرەك ئۇچۇرلار بار بولسا " "ئىجادىيەتچىلەر ئۈچۈن تېخىمۇ پايدىلىق بولاتتى." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "مەسىلە ئىجادىيەتچىلەرگە مەلۇم قىلىندى. سىزگە تەشەككۈر!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "بۇ ئالدىنقى قېتىملىق توڭدا(suspend) دە يۈز بەرگەن بولۇپ، سىستېمىنى نورمال " "داۋام قىلغىلى بولمىدى." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "بۇ ئالدىنقى قېتىملىق ئۈچەكتە(hibernation) دە يۈز بەرگەن بولۇپ، سىستېمىنى " "نورمال داۋام قىلغىلى بولمىدى." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "ئەسلىگە قايتۇرۇش باسقۇچى ئاخىرلىشاي دەپ قالدى، بۇنداق بولغاندا نورمال " "تاماملىنىدۇ." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "خالىغان كۇنۇپكىنى باسسىڭىز داۋاملىشىدۇ..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "نېمە قىلغۇڭىز بار؟ سىز تۆۋەندىكىلەرنى قىلالايسىز:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "تاللاڭ(%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i بايت)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "مەلۇماتنى ئەۋەتىپ بولغاندىن كېيىن \n" "توركۆرگۈدە ئېچىلغان بەتتىكى جەدۋەلنى تولدۇرۇڭ." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "مەلۇمات (%s) نى ئەۋەت(&S)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "يەرلىكتە تەكشۈر(&E)" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "مەلۇمات كۆرسەت(&V)" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "كېيىن يەنە باشقىلارغا ئەۋەتىش ياكى كۆچۈرۈپ بېرىش ئۈچۈن مەلۇمات ھۆججىتى " "ساقلاپ قوي(&K)" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" "پروگراممىنىڭ مەزكۇر نەشرىدە بۇنىڭدىن كېلىپ چىققان crashes نى ئەمەلدىن قالدۇر " "ياكى پىسەنت قىلما(&I)" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "ئەمەلدىن قالدۇر(&C)" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "مەلۇمات ھۆججىتى:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "جەزملە(&C)" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "خاتالىق: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "ئىجادىيەتچىلەرنىڭ پروگراممىنى مۇكەممەللەشتۈرۈشى ئۈچۈن \n" "توپلانغان ئۇچۇرلارنى ئەۋەتىدۇ. بۇنىڭغا ئازراق ۋاقىت كېتىدۇ." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "توپلانغان ئۇچۇرلارنى كەمتۈك باشقۇرۇش سىستېمىسىغا ئەۋەتىدۇ.\n" "بۇنىڭغا ئازراق ۋاقىت كېتىدۇ." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "تامام(&D)" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "يوق" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "تاللانغىنى : %s. كوپنى تاللاش:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "تاللاشلار:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "ھۆججەتنىڭ يولى(بولدى قىلىش ئۈچۈن قايتۇرۇش كۇنۇپكىسىنى بېسىڭ):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "ھۆججەت مەۋجۇت ئەمەس." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "بۇ بىر مۇندەرىجە." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "داۋاملاشتۇرۇش ئۈچۈن تۆۋەندىكى URL نى كۆرۈشىڭىز كېرەك:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "ئەمدى توركۆرگۈنى قوزغىتىڭ ياكى، URL نى باشقا كومپيۇتېردىكى توركۆرگۈگە " "كۆچۈرۈڭ." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "ھازىرلا توركۆرگۈنى قوزغىتىش" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "تېخى بىر تەرەپ قىلىنمىغان crash ھەققىدىكى مەلۇمات يوق. --help نى ئىشلەتسىڭىز " "تېخىمۇ كوپ ئۇچۇرغا ئېرىشەلەيسىز." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "" #~ "argument لارنىڭ سانى توغرا ئەمەس. --help نى ئىشلىتىپ قىسقىچە چۈشەندۈرۈشىنى " #~ "كۆرۈڭ." #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "كەچۈرۈڭ، پروگرامما «%s» ئويلىمىغان يەردىن تاقىلىپ قالدى." #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "كەچۈرۈڭ، بوغچا «%s» نى ئورنىتىش ياكى يۈكسەلدۈرۈش مەغلۇپ بولدى." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "سىستېمىڭىزنىڭ يادروسىدا(kernel) ئېغىر مەسىلە يۈز بەردى." #~ msgid "Kernel problem" #~ msgstr "يادرو(kernel) دىكى مەسىلە" #~ msgid "Send this data to the developers?" #~ msgstr "بۇ سانلىق-مەلۇماتلارنى ئىجادىيەتچىگە ئەۋەتسۇنمۇ؟" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "بۇ ئالدىنقى قېتىملىق توڭلىتىش جەريانىدا يۈز بەرگەن بولۇپ، قايتا باشلاشقا " #~ "بولمىدى." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "بۇ ئالدىنقى قېتىملىق ئۈچەككە كىرگۈزۈش جەريانىدا يۈز بەرگەن بولۇپ، قايتا " #~ "باشلاشقا بولمىدى." #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">كەچۈرۈڭ، بوغچا «%s» نى ئورنىتىش ياكى " #~ "يۈكسەلدۈرۈش مەغلۇپ بولدى.</span>" #~ msgid "Package problem" #~ msgstr "بوغچىدىكى مەسىلە" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "بۇ رەسمىي %s بوغچىسى ئەمەس" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "بوغچا «%s» نى ئورنىتىش ياكى يېڭىلاش مەغلۇپ بولدى." #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "يەرلىكتە مەشغۇلات قىلىشىڭىز (-s، -g، -o) ياكى سالاھىيەت دەلىللەش ھۆججىتىنى (-" #~ "-auth) تەمىنلىشىڭىز كېرەك. ئاددىي ياردەم ئۇچۇرىغا ئېرىشىش ئۈچۈن --help نى " #~ "ئىشلىتىڭ." #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "كەچۈرۈڭ بۇ %s ئەپ تاسادىپىي تاقالدى." #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "سىستېمىڭىزنىڭ بىنورمال بولۇش ئېھتىماللىقى بار، شۇڭا قايتا قوزغىتىش زۆرۈر." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/uk.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000154414�14416106601�011457� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Ukrainian translation for apport # Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Ukrainian <uk@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: uk\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "Скасувати" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "Гаразд" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>Вибачте, сталася внутрішня помилка.</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "Ігнорувати подальші збої у цій версії програми" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Залишити закритим" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Збір інформації про помилку</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Проводиться збір інформації, яка може допомогти розробникам виправити цю " "помилку." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Вивантаження даних щодо проблеми" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Передача інформації про помилку</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Зібрана інформація пересилається до системи обліку помилок. Це може тривати " "декілька хвилин." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Пошкодженя файлу Apport" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(двійкові дані)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "Вибачте, застосунок %s неочікувано зупинився." #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "Вибачте, у %s сталася внутрішня помилка." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Надіслати розробникам звіт про помилку?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "Примусове закриття" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "Застосунок %s перестав відповідати." #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "Програма \"%s\" перестала відповідати." #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Пакунок: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Вибачте, під час встановлення сталася помилка." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "У додатку %s сталася внутрішня помилка." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "Ігнорувати такі проблеми у майбутньому" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Використання: %s <report> <target directory>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Каталог адресату існує і не є порожнім." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Збір інформації про помилку" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" "Зібрані дані можна надіслати розробникам з метою покращення програми. Ви " "можете витратити на це декілька хвилин." #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "Зібрати системну інформацію" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" "Потрібно надати права, щоб зібрати потрібні дані для звітування цієї проблеми" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "Звіти про системні помилки" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" "Уведіть свій пароль для доступу до звітів про помилки у системних програмах" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Повідомити про помилку..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Звітувати про збій розробникам" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "Дивіться подробиці у man-сторінці." #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "вкажіть ім’я log-файлу для valgrind" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" "використовувати раніше створений каталог пісочниці (SDIR) або створити його " "якщо його не існує" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" "не створювати та не використовувати каталог пісочниці для додаткових " "символів налагодження, а покладатися лише на встановлені символи " "налагодження." #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" "використовувати раніше створений каталог кешу (CDIR) або створити його якщо " "його не існує" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" "показувати поступ завантаження/встановлення під час встановлення пакунків у " "пісочницю" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" "виконуваний файл, який запускається під контролем valgrind memcheck для " "визначення витоків пам’яті" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" "Встановити у тимчасове середовище додатковий пакунок (може встановлюватися " "декілька разів)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "Помилка: %s — не виконуваний файл. Зупинка." #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Система може стати нестабільною, можливо буде потрібне перезавантаження." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Не вкладайте нові записи у звіт, а долучайте їх до stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Початок інтерактивної GDB сесії з дампом у звіті (-o ігнорувати, не " "записувати у звіт)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" "Записати змінений звіт до вказаного файлу замість заміни оригінального звіту" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "Зняти дамп зі звіту після трасування стеку регенерації" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Перекрити звіти CoreFile" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Перекрити звіти ExecutablePath" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Перекрити звіти ProcMaps" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Перебудувати звітовий пакунок інформації" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "Створити тимчасове середовище, далі - завантажити/встановити у ньому " "необхідні пакунки й налагоджувальні символи; без цього параметру очікується, " "що необхідні пакунки та налагоджувальні символи у системі вже встановлено. " "Аргумент вказує на базову теку конфігурації системи пакунків; якщо Ви " "вказали \"system\", буде використано системні файли конфігурації, але лише у " "разі виявлення аварійних ситуацій, що виникли у випуску системи, яка працює " "на дану мить." #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" "Сповіщати про хід виконання завантаження/встановлення пакунків у тимчасовому " "середовищі" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" "Створення і використання сторонніх сховищ на основі початкових, вказаних у " "звітах" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" "Тека для збереження пакунків, що заванатажуються у тимчасове середовище" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" "Директорія для розпакування пакунків. При наступних запусках усі вже " "завантажені пакунки будуть розпаковуватися у це ізольоване оточення." #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" "Шлях до файлу з інформацією про автентифікацію бази даних про крахи. " "Використовується лише якщо вказано ID краху для відсилання трасувань стеку " "(за умови, що ні -g, -o , ані -s не вказано)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Показати перетрасований стек та запитати підтвердження перед відправленням " "його у базу аварій." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Шлях до дублікату бази даних sqlite (типово: немає дублікату для перевірки)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "Неможна використовувати -C без -S. Зупинка." #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Відіслати їх як вкладення? [так/ні]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "Схоже, що цей пакунок встановлено невірно" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" "Даний пакунок %s не є офіційним. Будь ласка, вилучіть усі сторонні пакунки " "та повторіть знову." #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "У системі встановлено застарілі версії деяких пакунків. Оновіть наступні " "пакунки та перевірте, чи залишилася проблема:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "невідома програма" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "На жаль, програма \"%s\" несподівано закрилася" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Помилка у %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "На вашому комп'ютері недостатньо вільної пам'яті для автоматичного аналізу " "проблеми та надсилання розробникам звіту." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Неправильний звіт про помилку" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Ви не маєте доступу до цього звіту." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Помилка" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Недостатньо місця на диску для обробки цього звіту." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Не вказано пакунок" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Необхідно вказати пакунок або PID. Наберіть --help для отримання додаткової " "інформації." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "У доступі відмовлено" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Зазначений процес Вам не належить. Будь ласка, запустіть програму як власник " "процесу або як root." #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "Неправильний PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "Зазначений процес ID не належить до програми." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "Симптоматичний скрипт %s не може визначити постраждалих пакунків" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Пакунку %s не існує" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "Неможливо створити звіт" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "Ви не створювали даний звіт. Набагато легше маркувати помилку як ту що вже " "існує, ніж створювати свої коментарі та відправляти нову помилку.\n" "\n" "Надалі, ми рекомендуємо Вам подати нове повідомлення про помилку з " "використанням \"apport-bug\", та коментувати помилку у тому ж файлі.\n" "\n" "Ви справді бажаєте продовжити?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "Не зібрано додаткової інформації." #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Про яку проблему ви бажаєте повідомити?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Невідомий симптом" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Симптом «%s» не відомий" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" "Після того, як сховаєте дане повідомлення, будь-ласка, клацніть на вікно " "програми для того, щоб відіслати звіт про помилку." #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "Помилка xprop: не вдалося визначити ID процесу вікна" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "Вкажіть назву пакунку." #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "Додати додаткову мітку до звіту. Може бути задано декілька разів." #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [параметри] [симптом|pid|пакунок|шлях програми|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Запуск у режимі запису помилки у файл. Вимагає --package і факультативно --" "pid, або просто --pid. Якщо ні одного не вказано, показати список відомих " "симптомів. (Мається на увазі якщо задано один аргумент.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" "Запустити у режимі оновлення помилки. Може виконуватися з ключем --package." #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Відправити звіт про помилку з симптомом. (Мається на увазі, якщо ім'я " "симптому дано як єдиний аргумент.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Вкажіть назву пакунку у режимі --file-bug. Необов’язково якщо вказано --pid. " "(Припустимо що назва пакунку вказана у якості єдиного аргументу)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" "Вкажіть програму, що виконується, у режимі --file-bug. У цьому випадку звіт " "про помилку міститиме більше інформації. (Мається на увазі, що вказано " "єдиний аргумент- pid.)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "Вказаний ідентифікатор належить процесу, який не відповідає." #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Повідомити про крах із наданого файлу .apport або .crash замість файлів у " "черзі в %s. (За умови, що файл надано у якості єдиного параметру.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" "У режимі збору помилок замість надсилати зібрану інформацію, збережіть її у " "файл. Цей файл можна буде відправити пізніше з іншого комп'ютера." #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "Надрукувати номер версії Apport ." #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "Запустити сеанс gdb" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "Запустити сеанс gdb, оминувши завантаження символів відлагодження" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" "Цей звіт про помилку належить до програми, якої більше немає у системі." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Цей звіт про помилку пошкоджено та не може бути оброблено." #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Звіт належить до пакунку, якого не встановлено." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "Сталася помилка при спробі обробки звіту:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Не вдалося визначити ім'я пакунку або ім'я пакунку з вихідним кодом." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Неможливо запустити оглядач тенет" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Неможливо запустити оглядач тенет, щоб відкрити %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" "Будь ласка, уведіть інформацію про обліковий запис для %s системи стеження " "за помилками" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Проблема з мережею" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Не вдається під'єднатися до пошкодженої бази даних, будь ласка, перевірте " "з'єднання з мережею Інтернет." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Пам'ять вичерпано" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "У системі недостатньо пам'яті для обробки цього звіту про помилку." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Не вдається повідомити про помилку:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Про помилку вже відомо" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Про цю помилку вже відомо. Звіт про неї відкритий у вашому браузері. Будь " "ласка, перевірте, чи можете ви додати до нього іншу корисну інформацію, яка " "могла б допомогти розробникам." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "Про цю проблему розробникам вже відомо. Дякуємо!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" "Це сталося під час попереднього сеансу призупинення роботи і призвело до " "неможливості належного відновлення роботи системи." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" "Це сталося під час попереднього сеансу присипляння і призвело до " "неможливості належного відновлення роботи системи." #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Обробка даних звіту зависла дуже близько до кінця і буде, як видається, " "завершено нормально." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Натисніть будь-яку клавішу для продовження..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Що ви бажаєте зробити? Варіянти вибору:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Будь ласка, виберіть (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "(%i байт)" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Після того, як звіт буде відправлено, заповніть форму\n" "у вікні браузера, яке автоматично відкрилося." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Надіслати звіт (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Переглянути звіт" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" "&Зберегти файл звіту для подальшого відправлення або копіювання будь-куди" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Скасувати та &ігнорувати майбутні збої у цій версії програми" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Скасувати" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Файл звіту про помилку:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Підтвердити" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Помилка: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Зібрану інформацію може бути направлено розробникам\n" "для покращення програми. Це може зайняти декілька хвилин." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Зібрана інформація надсилається до системи відстежування помилок.\n" "Це може зайняти декілька хвилин." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "&Завершено" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "немає" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Вибрано: %s. Декілька варіянтів:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Вибір:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Шлях до файлу (Enter для скасування):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Файлу не існує" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Це каталог." #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Щоб продовжити, ви повинні пройти за адресою:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Ви можете запустити браузер зараз або скопіювати цю адресу у браузер на " "іншому комп'ютері." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Запустити браузер" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Немає звітів про помилки у очікуванні. Спробуйте --help для детальної " "інформації." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Ви можете допомогти розробникам у вирішенні цієї помилки, надіславши звіт " #~ "про неї." #~ msgid "&Report Problem..." #~ msgstr "&Повідомити про проблему..." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Якщо ви не вводили конфіденційну інформацію (паролі або особисті дані),\n" #~ "Ви можете допомогти нам покращити програму, якщо надішлете звіт про помилку." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s несподівано закрилась %s в %s." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "У Вашій системі виявлена серйозна несправність ядра." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Пакунок \"%s\" не вдалося встановити або оновити." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Ви можете допомогти розробникам, відправивши звіт про виявлену помилку." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Надіслати повний звіт (рекомендовано; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Надіслати &скорочений звіт (повільне під'єднання до Інтернету; %s)" #~ msgid "Content of the report" #~ msgstr "Вміст звіту" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Повний звіт (рекомендується; %s)" #~ msgid "Application problem" #~ msgstr "Помилка в програмі" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Вибачте, пакунок \"%s\" не вдалося " #~ "встановити або оновити.</span>" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Надіслати розробникам звіт про помилку?</b></big>\n" #~ "\n" #~ "Після того, як звіт буде висланий, заповніть, будь ласка, форму, яка " #~ "автоматично відкриється в браузері." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Це сталося під час попереднього засинання і перешкоджало відновленню системи." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Скорочений звіт (повільне з'єднання з мережею Інтернет; %s)" #~ msgid "Restart _Program" #~ msgstr "Перезапустити _програму" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Це призведе до видалення деяких великих елементів зі звіту. Вони дуже " #~ "корисні для розробників під час налагодження програм, але можуть бути " #~ "занадто великими для завантаження, якщо у Вас повільне з'єднання з мережею " #~ "Інтернет." #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Ігнорувати майбутні збої в цій версії програми" #~ msgid "_Report Problem..." #~ msgstr "_Повідомити про проблему..." #~ msgid "Package problem" #~ msgstr "Помилка з пакунком" #~ msgid "Kernel problem" #~ msgstr "Помилка в ядрі" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Якщо Ви не вводили секретну інформацію (паролі або особисті дані), можете " #~ "допомогти покращити програму, відправивши звіт про помилку." #~ msgid "_Send Report" #~ msgstr "_Надіслати звіт" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Це не оригінальний пакунок %s" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Це сталося під час попереднього переходу у режим очікування і перешкоджало " #~ "відновленню системи." #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [параметри] <звіт про проблему apport | ID збою>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "помилкове число аргументів; скористайтеся --help для довідки" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "Вам необхідно або здійснити локальні операції (-s, -g, -o) або вказати файл " #~ "автентифікації (--auth); виберіть --help для короткої довідки" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "" #~ "Робота вашої системи зараз може стати нестабільною. Систему варто " #~ "перезавантажити." ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/uz.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000100276�14416106601�011473� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Uzbek translation for apport # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2012. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2012-12-20 18:03+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Uzbek <uz@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: uz\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "Ёпилган қолдирилсин" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "Давом этилсин" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "%s'да ички хато рўй берди." #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Тузувчиларга муаммо ҳақида хабар юборилсинми?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "Юбориш" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "Қайта ишга туширилсин" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "Пакет: %s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "Дастур ўрнатилганда муаммо рўй берди." #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "%s дастурида ички хато рўй берди." #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "%s дастури тўсатдан ёпилди." #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/vi.po�����������������������������������������������������������������������������0000664�0000000�0000000�00000126204�14416106601�011452� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Vietnamese translation for apport # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2009. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:46+0000\n" "Last-Translator: Phan Trọng Khanh <phantrongkhanh87@gmail.com>\n" "Language-Team: Vietnamese <vi@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: vi\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>Thu thập thông tin về vấn đề</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" "Thông tin đang được thu thập, nó có thể giúp các nhà phát triển sửa vấn đề " "bạn báo cáo." #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "Tải lên thông tin về vấn đề" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>Tải lên thông tin về vấn đề</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" "Thông tin thu thập được đang được gửi tới hệ thống kiểm soát lỗi. Công việc " "này có thể mất vài phút." #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Báo cáo tệp lỗi" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(dữ liệu nhị phân)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "Gửi báo cáo vấn đề tới những người phát triển?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "Sử dụng: %s <báo cáo> <thư mục đích>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "Thư mục đích tồn tại và không rỗng." #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "Thu thập thông tin về vấn đề" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "Báo cáo một vấn đề..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "Báo cáo một trục trặc tới nhà phát triển" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" "Hệ thống của bạn có thể trở nên không ổn định bây giờ và cần khởi động lại." #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "Không đưa dấu vết mới vào báo cáo, nhưng in chúng ra stdout." #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" "Bắt đầu một phiên gỡ lỗi tương tác với gdb sử dụng các thông tin lưu lại " "được khi chương trình gặp lỗi. (-o ignored: không viết lại báo cáo)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "Ghi báo cáo đã sửa đổi tới tệp đưa ra thay vì thay đổi báo cáo gốc" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" "Xóa các thông tin lưu lại được khi chương trình gặp lỗi khỏi báo cáo sau khi " "đã ghi lại vết của ngăn xếp." #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "Ghi đè CoreFile của báo cáo" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "Ghi đè ExecutablePath của báo cáo" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "Ghi đè ProcMaps của báo cáo" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "Tạo lại thông tin gói của báo cáo" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" "Hiển thị ngăn xếp dấu vết dò lại được và yêu cầu xác nhận trước khi gửi " "chúng tới cơ sở dữ liệu lỗi." #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" "Đường dẫn tới bản sao cơ sở dữ liệu sqlite (mặc định: không kiểm tra bản sao)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "Đồng ý gửi chúng như những đính kèm? [y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "Bạn có vài gói phiên bản cũ. Vui lòng nâng cấp những gói sau và kiểu tra nếu " "lỗi vẫn xuất hiện:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "chương trình không xác định" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "Xin lỗi, chương trình \"%s\" đã kết thúc bất ngờ" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "Vấn đề trong %s" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" "Máy tính của bạn không đủ bộ nhớ trống để tự động phân tích vấn đề và gửi " "báo cáo tới các nhà phát triển." #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "Báo cáo vấn đề không hợp lệ" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "Bạn không được phép truy cập báo cáo vấn đề này." #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "Lỗi" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "Không đủ dung lượng đĩa để thực hiện báo cáo này." #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "Chưa gói nào được xác định" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" "Bạn cần xác định một gói hoặc một PID. Xem --help để biết thêm thông tin." #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "Không đủ quyền truy cập" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" "Tiến trình không phải của bạn. Vui lòng chạy chương trình với tài khoản của " "chủ tiến trình hoặc với tài khoản quản trị root" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "PID không hợp lệ" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "ID của tiến trình không phải của một chương trình." #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "Gói %s không tồn tại" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "Bạn muốn báo cáo vấn đề loại nào?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "Dấu hiệu không xác định" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "Không biết dấu hiệu \"%s\"" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [tùy chọn] [dấu hiệu|pid|gói|đường đẫn chương trình|.apport/.crash " "file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "Chạy với chế độ lọc lỗi. Yêu cầu hoặc --package và một tùy chọn --pid, hoặc " "chỉ là --pid. Nếu không cách nào trong hai cách trên được sử dụng, hiển thị " "danh sách những dấu hiệu đã biết. (Mặc định nếu một tham số được đưa ra.)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" "Đệ trình báo cáo lỗi về một triệu chứng. (Mặc định nếu tên triệu chứng là " "tham số duy nhất.)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" "Xác định tên gói trong chế độ --file-bug. Tùy chọn này nếu một --pid được " "xác định. (Mặc định nếu tên gói được đưa ra như là tham số duy nhất.)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" "Báo cáo lỗi sử dụng các tệp .apport hoặc .crash thay vì sử dụng các tệp tạm " "trong %s. (Mặc định nếu tệp tin là tham số duy nhất.)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "In ra số phiên bản Trình báo lỗi" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "Báo cáo vấn đề này gắn với chương trình đã bị gỡ." #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "Báo cáo vấn đề này bị hỏng và không thể được thực hiện" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "Báo cáo thuộc về một gói chưa được cài đặt." #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "Không thể xác định tên của gói hoặc gói nguồn." #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "Không thể bật trình duyệt web" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "Không thể bật trình duyệt web để mở %s." #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "Vui lòng điền vào thông tin tài khoản cho hệ thống theo dõi lỗi %s" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "Lỗi mạng" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" "Không thể kết nối tới cơ sở lỗi, vui lòng kiểm tra kết nối Internet của bạn." #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "Hết bộ nhớ" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "Hệ thống của bạn không đủ bộ nhớ để thực hiện báo cáo lỗi này." #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "Không thể báo cáo vấn đề:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "Vấn đề đã biết" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "" "Vấn đề đã được báo cáo trong báo cáo lỗi hiển thị trong trình duyệt web. Vui " "lòng kiểm tra nếu bạn có thể thêm bất cứ thông tin gì có ích cho những người " "phát triển." #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" "Quá trình khôi phục bị dừng khi sắp kết thúc và sẽ xuất hiện để hoàn thành " "bình thường." #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "Nhấn phím bất kì để tiếp tục..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "Bạn muốn làm gì? Các lựa chọn là:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "Vui lòng chọn (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "Sau khi báo cáo về vấn đề được gửi, vui lòng điền vào mẫu trong trang\n" "web vừa tự động mở ra." #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "&Gửi báo cáo (%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "&Xem báo cáo" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "G&iữ tệp báo cáo để gửi sau hoặc sao chép" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "Hủy và bỏ &qua hỏng hóc của chương trình này những lần sau" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "&Thôi" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "Tệp báo cáo vấn đề:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "&Xác nhận" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "Lỗi: %s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "Thông tin được thu thập có thể gửi tới những người phát triển để cải tiến\n" "ứng dụng. Công việc này có thể mất vài phút." #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "Thông tin thu thập đang được gửi tới hệ thống kiểm duyệt lỗi.\n" "Côn việc này có thể mất vài phút." #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "Đã &xong" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "không" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "Đã chọn: %s. Nhiều lựa chọn:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "Các lựa chọn:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "Đường đẫn tới tệp (Enter để hủy):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "Tệp không tồn tại." #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "Nó là một thư mục" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "Để tiếp tục, bạn phải vào địa chỉ URL sau:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" "Giờ bạn có thể chạy một trình duyệt, hoặc chép địa chỉ URL này vào một trình " "duyệt hoặc máy tính khác." #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "Chạy một trình duyệt" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" "Không có báo cáo lỗi nào đang chờ. Thử --help để biết thêm thông tin." #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "Đây không phải là gói %s chuẩn" #~ msgid "&Report Problem..." #~ msgstr "&Báo cáo vấn đề..." #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s đóng bất ngờ trên %s lúc %s." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "Gói \"%s\" gặp lỗi khi cài hoặc nâng cấp." #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "" #~ "Bạn có thể giúp những người phát triển sửa gói bằng cách báo cáo vấn đề." #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "" #~ "Bạn có thể giúp đỡ những người phát triển sửa lỗi bằng cách báo cáo nó." #~ msgid "Application problem" #~ msgstr "Vấn đề về Ứng dụng" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "" #~ "<span weight=\"bold\" size=\"larger\">Xin lỗi, gói \"%s\" gặp lỗi cài đặt " #~ "hoặc nâng cấp.</span>" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>Gửi báo cáo vấn đề tới người phát triển?</b></big>\n" #~ "\n" #~ "Sau khi gửi báo cáo vấn đề, vui lòng điền vào mẫu ở trang web đã tự động mở " #~ "ra." #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "Báo cáo ngắn gọn (kết nối Internet chậm; %s)" #~ msgid "Restart _Program" #~ msgstr "Khởi động lại _Chương trình" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "_Bỏ qua vấn đề của ứng dụng sau này" #~ msgid "Package problem" #~ msgstr "Lỗi gói" #~ msgid "Kernel problem" #~ msgstr "Lỗi nhân" #~ msgid "Content of the report" #~ msgstr "Nội dung của báo cáo" #~ msgid "_Report Problem..." #~ msgstr "_Báo cáo vấn đề..." #~ msgid "_Send Report" #~ msgstr "_Gửi báo cáo" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [tùy chọn] <apport problem report | crash ID>" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "Nếu bạn đang không làm một việc riêng tư (nhập mật khẩu hoặc thông tin\n" #~ "riêng tư nào đó), bạn có thể giúp cải thiện ứng dụng bằng cách báo cáo \n" #~ "vấn đề." #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "Hệ thống của bạn gặp một vấn đề nghiêm trọng liên quan đến nhân." #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "&Gửi báo cáo đầy đủ (khuyên dùng; %s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "Gửi báo &cáo giản lược (kết nối mạng chậm; %s)" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "Báo cáo đầy đủ (khuyên dùng; %s)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "" #~ "Lựa chọn này sẽ bỏ một vài mục lớn từ báo cáo. Những mục đó rất hữu ích cho " #~ "nhà phát triển để tìm lỗi, nhưng có thể quá lớn khi bạn tải nó lên nếu bạn " #~ "có đường truyền Internet chậm." #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "" #~ "Nếu bạn đang không làm gì đó riêng tư (nhập mật khẩu hoặc thông tin riêng tư " #~ "khác), bạn có thể giúp cải thiện ứng dụng bằng cách báo cáo vấn đề." #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "" #~ "bạn hoặc là phải thực hiện một thao tác trên máy cục bộ (-s, -g, -o) hoặc là " #~ "cung cấp tệp xác thực (--auth); sử dụng --help để xem trợ giúp" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "sai số của tham số; sử dụng --help để xem trợ giúp" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Lỗi xảy ra trong một lần tạm dừng trước và khiến cho hệ thống không khôi " #~ "phục lại một cách bình thường." #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "" #~ "Lỗi xảy ra trong một lần ngủ dông trước và khiến cho hệ thống không khôi " #~ "phục lại một cách bình thường." ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/zh_CN.po��������������������������������������������������������������������������0000664�0000000�0000000�00000131067�14416106601�012040� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Chinese (China) translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Chinese (China) <zh_CN@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "取消" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "确定" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "崩溃报告" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>对不起,发生内部错误。</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "如果您注意到更多问题,请尝试重新启动计算机。" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "请发送错误报告,以帮助修复此问题" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "以后忽略此版本程序的问题" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "显示详细信息" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "本地检查(_E)" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "保持关闭状态" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "继续" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>正在收集问题信息</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "正在收集信息,这些信息将会帮助开发人员修复您报告的问题。" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "上传问题信息" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>正在上传问题信息</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "所收集的信息正在发送到缺陷跟踪系统。这可能需要几分钟。" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport 崩溃文件" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(二进制数据)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "对不起,应用程序 %s 意外停止。" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "对不起,%s 已意外关闭。" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "对不起,%s 出现了内部错误。" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "向开发者发送问题报告?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "发送" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "强制关闭" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "重新启动程序" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "应用程序 %s 停止响应。" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "程序 %s 停止响应。" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "软件包:%s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "对不起,安装软件时出现问题。" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "应用程序 %s 发生内部错误。" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "应用程序 %s 已意外关闭。" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "以后忽略此类错误" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "隐藏详细信息" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "用法:%s <报告> <目标目录>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "目标目录存在且不为空。" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "用户名:" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "密码:" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "正在收集问题信息" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "正在收集问题信息" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "收集到的信息可以发送给开发者来改进程序。这可能要花费几分钟的时间。" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "上传问题信息" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "收集系统信息" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "为此问题报告收集系统信息需要授权" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "系统问题报告" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "请输入您的密码以查看系统程序问题报告。" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "提交一份问题报告…" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "向开发者报告一个故障" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "更多细节请查看 man 手册。" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "请指定 valgrind 生成的日志文件名" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "重复使用以前创建的缓存目录 (SDIR) ,或者,如果它不存在,则创建它" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "不创建或重用额外的调试符号的沙箱目录,仅依靠安装调试符号。" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "重复使用以前创建的缓存目录(CDIR),或者,如果它不存在,则创建它" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "安装包进入沙盒时报告下载/安装进度" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "该可执行文件运行 Valgrind MemCheck 工具下的内存泄漏检测" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "将其他软件包安装到沙盒(可多次加以指定)中" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "错误:%s 不是可执行文件,停止。" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "您的系统现在可能变得不稳定,可能需要重新启动。" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "不把新的痕迹写入到报告,但是把它们写入到标准输出。" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "启动一个交互式的 gdb 进程并载入提交的崩溃信息 (-o 不重新生成报告)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "将更改过的报告写入指定文件而非改变原始报告" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "生成栈回溯后将内核转储从报告中删除" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "覆盖报告核心文件" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "覆盖报告执行路径" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "覆盖报告的进程表" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "重建报告的包信息" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "构建临时沙盒,以及下载/安装必要的软件包和调试符号;如果没有该选项,则会假设该系统中已安装了必要的软件包和调试符号。此参数指向该打包系统配置库目录;如果指" "定 \"system\",则其将使用系统配置文件,但之后,其将只能够追溯当前正在运行的版本上发生的崩溃。" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "在将软件包安装到沙盒中时,报告下载和安装的进度" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "为进行批量操作,请预先设置时间戳,以记录消息" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "根据报告中指定的来源创建并使用第三方软件仓库" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "下载到沙盒中软件包的缓存目录" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "用于解压包目录。以后运行将假设任何已下载的包被提取到这个沙盒。" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "包含崩溃数据库访问信息文件之路径。此项将用于为特定崩溃代码上传堆栈的回溯调试信息(除非用户指定 -g, -o 或 -s)" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "显示返回的堆栈信息,并询求确认是否将其发送至崩溃数据库。" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "SQLite 数据库路径重复(默认:不重复检查)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "您不能在未指定 -S 选项的情况下使用 -C 选项,停止。" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "确定以附件形式发送这些?[y/n]" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "该软件包似乎没有被正确安装" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "这不是官方的 %s 软件包。请删除所有第三方软件包,然后重试。" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "您安装了一些陈旧的软件包。请升级以下软件包后再查看问题是否依然发生:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "未知程序" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "对不起,%s 程序异常退出" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "%s 中的问题" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "您的计算机剩余空间不足,程序无法自动诊断问题并向开发者发送问题报告。" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "无效的问题报告" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "您没有访问这个问题报告的权限。" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "错误" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "没有足够的磁盘空间来处理报告。" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "没有指定软件包" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "您需要指定一个软件包或者 PID。使用 --help 选项来获取更多信息。" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "拒绝访问" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "指定的进程只能以进程的所有者或 root 身份运行。" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "无效的 PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "指定的进程 ID 不属于一个程序。" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "症状脚本 %s 没有划定受影响的包" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "软件包 %s 不存在" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "无法创建报告" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "更新问题报告" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" "您不是该问题报告的报告者或订阅者,或者该报告被视为重复或已经关闭。\n" "请使用 apport-bug 新建一份报告。" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" "您并不是这个问题报告的报告者。相对而言,标记一个重复的错误远比迁移您的评论和附件到新的错误报告容易得多。\n" "因此,我们建议您使用 apport-bug 来提交新的错误报告,并在当前报告中对您新提交的报告进行评论。\n" "您确定要继续么?" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "未收集更多信息。" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "您想报告什么类型的问题?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "未知症状" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "症状 %s 未知。" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "在关闭这个消息只后,请点击要报告问题的程序窗口。" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "xprop 无法确定窗口的进程 ID" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "请指定包的名称。" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "向报告中添加额外的标记,可多次指定。" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "%prog [选项] [症状|PID|软件包|程序目录|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "以填写 bug 模式启动。需要 --package 和可选的 --pid 参数,或单独使用 --pid 参数。如果二者均未给出,将显示一系列症状供选择。" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "点击一个窗口作为提交问题报告的目标。" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "启动错误更新模式。可以使用选项 --package 来指定软件包。" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "针对某个症状报告 bug。" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "--file-bug 模式中指定软件包名。如果指定了 --pid,则是可选的。(如果只给定软件包名这一个参数则为必需。)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "在 --file-bug 模式中指定运行的程序。如果指定,该问题报告将包含更多的信息。(默认指定 pid 作为唯一参数。)" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "此进程号的程序是挂起的。" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "从给定的 .apport 或者 .crash 文件,而不是从正在处理的 %s 中汇报崩溃。(如果文件只给定了参数时实现。)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "在提交报告过程中,将收集到的信息保存到要报告的文件中。该文件可用于稍后在另一台机器上提交。" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "输出 Apport 版本号" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "这将在终端窗口中启动 apport-retrace,以检查此崩溃。" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "运行 gdb 会话" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "不下载调试符号的情况下运行 gdb 会话" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "利用全符号的堆栈跟踪更新 %s" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "这一问题报告适用于不再安装的程序。" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "自崩溃发生起已更改的程序 %s 出现问题。" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "该问题报告已损坏,无法处理。" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "该报告属于一个未安装的软件包。" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "尝试处理此问题报告时出现错误:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "无法检测包或者源码包的名称。" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "无法打开浏览器" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "无法使用浏览器打开网页 %s" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "请为 %s 错误追踪系统输入您的帐户信息" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "网络问题" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "无法连接到崩溃数据库,请检查您的 Internet 连接。" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "内存耗尽" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "您的系统没有足够的内存来处理此崩溃报告。" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "无法报告问题:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "该问题为已知问题" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "关于这个问题,之前已经有如网页所示的报告。您是否有所补充?" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "已将此问题报告给开发人员。谢谢!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "发生于之前的挂起时,并且使系统午饭正常恢复。" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "发生于之前的休眠时,并且使系统午饭正常恢复。" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "这个恢复过程已经非常接近尾声,将正常结束。" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "按任意键继续…" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "您想做什么?您的选择是:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "请选择(%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "当问题报告被发出之后,请填写\n" "自动弹出窗口的表格。" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "发送报告(&S)(%s)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "本地检查(&E)" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "查看报告(&V)" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "保存报告文件以便稍后发送或者复制到其他地方(&K)" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "终止并忽略这个版本软件以后出现的崩溃(&I)" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "取消(&C)" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "问题报告文件:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "确认(&C)" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "错误:%s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "收集到的信息将会传送到开发人员处以改进软件。\n" "这可能会花费几分钟时间," #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "收集到的信息正在被发送到错误跟踪系统。\n" "这可能要花费几分钟时间。" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "完成(&D)" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "无" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "已选择:%s。 多重选择:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "选择:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "文件的路径(回车取消):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "文件不存在。" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "这是一个目录。" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "要继续,您必须访问下面这个网址:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "您现在可以启动一个浏览器,或者复制这个网址到另外一个电脑的浏览器。" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "现在启动一个浏览器" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "没有已知的崩溃报告,尝试 --help 以获得更多信息。" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "您可以通过报告这个信息来帮助开发者解决这个问题。" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>向开发人员发送问题报告?</b></big>\n" #~ "\n" #~ "发送问题后,请填写网络浏览器中自动打开的表格。" #~ msgid "Application problem" #~ msgstr "应用程序问题" #~ msgid "_Send Report" #~ msgstr "发送报告(_S)" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s 异常关闭在 %s 在 %s。" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "<span weight=\"bold\" size=\"larger\">对不起,软件包 \"%s\" 安装或升级失败</span>" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "忽略这个程序以后的崩溃(_I)" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "这会移除报告的一些大条目。虽然这对开发者报告问题很有用,但如果带宽窄则会上传太慢。" #~ msgid "&Report Problem..." #~ msgstr "提交问题报告(&R)…" #~ msgid "_Report Problem..." #~ msgstr "报告问题(_R)..." #~ msgid "Kernel problem" #~ msgstr "内核问题" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "请报告问题,这能帮助开发者修正它。" #~ msgid "Content of the report" #~ msgstr "报告的内容" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "您的系统遇到了一个严重的内核问题。" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "这是在上一个挂起中发生的,并阻止了它正确地恢复。" #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "这是在上一个休眠中发生的,并阻止了它正确地恢复。" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [选项] <apport 问题报告/崩溃的 ID 号>" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "参数数量错误;使用 --help 获取简略帮助" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "这不是真实的 %s 包" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "如果您没有做任何机密的事情 (输入密码或者其它私人信息),\n" #~ "可以通过汇报这个问题来改进程序。" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "发送完整的报告(&S)(推荐:%s)" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "发送精简的报告(慢速网络连接: %s)" #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "软件包\"%s\"安装或者升级失败。" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "完整报告(推荐;%s)" #~ msgid "Package problem" #~ msgstr "软件包问题" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "精简报告(适用于慢速连接;%s)" #~ msgid "Restart _Program" #~ msgstr "重启程序(_P)" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "如果您现在的动作不涉及机密信息(即不是输入口令等涉及私密信息的动作),则可以报告本问题以便改进程序。" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "您或需要进行一项本地操作(-s, -g, -o) 或提供一个认证文件(--auth);参见 --help 以获取简单帮助。" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "对不起,应用程序 %s 意外关闭。" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "现在您的系统可能变得不稳定,并且可能需要重新启动。" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/po/zh_HK.po��������������������������������������������������������������������������0000664�0000000�0000000�00000102777�14416106601�012050� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Chinese (Hong Kong) translation for apport # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2011. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2011-10-07 06:10+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: zh_HK\n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "當機回報" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>非常抱歉,發生內部錯誤。</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "若您之後仍發現問題,請嘗試重新啟動電腦。" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "傳送錯誤回報來幫助我們修復此問題" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "忽略本程式版本未來發生的錯誤" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "顯示詳細資料" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "於本地端檢查(_E)" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "維持關閉" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "繼續" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "很抱歉,應用程式 %s 已無預期停止。" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "非常抱歉,%s 已無預警關閉。" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "非常抱歉, %s 遭遇內部錯誤。" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "傳送" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "強制關閉" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "重新啟動" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "應用程式 %s 已停止回應。" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "程式「%s」已停止回應。" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "套件:%s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "非常抱歉,於安裝軟件時遭遇問題。" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "應用程式 %s 已遭遇某內部錯誤。" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "應用程式 %s 已無預警關閉。" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "忽略未來發生的此類型問題" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "隱藏詳細資料" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "收集系統資訊" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "若要為此問題回報收集系統資訊需先通過身份驗證" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "在記錄訊息前加上時間戳記,供批次操作" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "解包套件的目錄。未來執行時將假定任何已下載的套件也都抽出於此沙盒中。" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "這個套件似乎尚未正確安裝" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "這不是官方的 %s 套件。請移除任何第三方套件並重試。" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "提供的 pid 是懸凍的應用程式。" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "這會在終端機視窗中啟動 apport-retrace 以檢查程式當掉原因。" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "執行 gdb 作業階段" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "執行 gdb 作業階段而不下載除錯符號" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "以完整的符號堆疊追蹤來更新 %s" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "發生問題的程式 %s 自上次遭遇當掉之後已有變動。" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "試圖處理問題回報時遭遇錯誤:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "此問題在網頁瀏覽器上顯示的錯誤報告中已經回報,請檢查您是否能提供更多可能對開發者有用的進一步資訊。" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "此問題已經回報給開發者。感謝您!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "" #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "於本地端檢查(&E)" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "非常抱歉,應用程式 %s 已無預警關閉。" �apport-2.20.11/po/zh_TW.po��������������������������������������������������������������������������0000664�0000000�0000000�00000127317�14416106601�012075� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Chinese (Taiwan) translation for apport # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the apport package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2006. # msgid "" msgstr "" "Project-Id-Version: apport\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-09-10 11:16+0200\n" "PO-Revision-Date: 2015-04-27 21:47+0000\n" "Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n" "Language-Team: Chinese (Taiwan) <zh_TW@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2019-04-13 05:35+0000\n" "X-Generator: Launchpad (build 18920)\n" "Language: \n" #: ../kde/apport-kde.py:469 ../kde/apport-kde.py:504 ../kde/apport-kde.py:524 #: ../debian/tmp/usr/share/apport/apport-kde.py:469 #: ../debian/tmp/usr/share/apport/apport-kde.py:504 #: ../debian/tmp/usr/share/apport/apport-kde.py:524 ../gtk/apport-gtk.ui.h:1 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:1 msgid "Apport" msgstr "" #: ../gtk/apport-gtk.ui.h:2 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:2 msgid "Cancel" msgstr "" #: ../gtk/apport-gtk.ui.h:3 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:3 msgid "OK" msgstr "確定" #: ../gtk/apport-gtk.ui.h:4 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:4 msgid "Crash report" msgstr "當機回報" #: ../gtk/apport-gtk.ui.h:5 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:5 msgid "<big><b>Sorry, an internal error happened.</b></big>" msgstr "<big><b>非常抱歉,發生內部錯誤。</b></big>" #: ../kde/apport-kde.py:241 ../debian/tmp/usr/share/apport/apport-kde.py:241 #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.py:297 #: ../gtk/apport-gtk.py:297 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "If you notice further problems, try restarting the computer." msgstr "若您之後仍發現問題,請嘗試重新啟動電腦。" #: ../gtk/apport-gtk.ui.h:7 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:7 msgid "Send an error report to help fix this problem" msgstr "傳送錯誤回報來幫助我們修復此問題" #: ../gtk/apport-gtk.ui.h:9 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:9 msgid "Ignore future problems of this program version" msgstr "忽略本程式版本未來發生的錯誤" #: ../kde/apport-kde.py:292 ../debian/tmp/usr/share/apport/apport-kde.py:292 #: ../gtk/apport-gtk.ui.h:11 ../debian/tmp/usr/share/apport/apport-gtk.py:204 #: ../debian/tmp/usr/share/apport/apport-gtk.py:575 ../gtk/apport-gtk.py:204 #: ../gtk/apport-gtk.py:575 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:11 msgid "Show Details" msgstr "顯示詳細資料" #: ../gtk/apport-gtk.ui.h:12 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:12 msgid "_Examine locally" msgstr "於本地端檢查(_E)" #: ../kde/apport-kde.py:234 ../debian/tmp/usr/share/apport/apport-kde.py:234 msgid "Leave Closed" msgstr "維持關閉" #: ../kde/apport-kde.py:231 ../kde/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-kde.py:231 #: ../debian/tmp/usr/share/apport/apport-kde.py:244 #: ../debian/tmp/usr/share/apport/apport-gtk.py:216 ../gtk/apport-gtk.py:216 msgid "Continue" msgstr "繼續" #: ../gtk/apport-gtk.ui.h:15 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:15 msgid "<big><b>Collecting problem information</b></big>" msgstr "<big><b>正在收集問題資訊</b></big>" #: ../gtk/apport-gtk.ui.h:16 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:16 msgid "" "Information is being collected that may help the developers fix the problem " "you report." msgstr "正在收集資訊以幫助開發者修正您報告的問題。" #: ../kde/apport-kde.py:435 ../debian/tmp/usr/share/apport/apport-kde.py:435 #: ../bin/apport-cli.py:267 ../gtk/apport-gtk.ui.h:17 #: ../debian/tmp/usr/bin/apport-cli.py:267 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:17 msgid "Uploading problem information" msgstr "正在上傳問題資訊" #: ../gtk/apport-gtk.ui.h:18 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:18 msgid "<big><b>Uploading problem information</b></big>" msgstr "<big><b>正在上傳問題資訊</b></big>" #: ../kde/apport-kde.py:436 ../debian/tmp/usr/share/apport/apport-kde.py:436 #: ../gtk/apport-gtk.ui.h:19 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:19 msgid "" "The collected information is being sent to the bug tracking system. This " "might take a few minutes." msgstr "正將收集到的資訊傳送至臭蟲追蹤系統。這可能需要數分鐘。" #: ../kde/apport-kde-mimelnk.desktop.in.h:1 msgid "Apport crash file" msgstr "Apport 當機檔案" #: ../kde/apport-kde.py:363 ../debian/tmp/usr/share/apport/apport-kde.py:363 #: ../bin/apport-cli.py:166 ../debian/tmp/usr/bin/apport-cli.py:166 #: ../debian/tmp/usr/share/apport/apport-gtk.py:146 ../gtk/apport-gtk.py:146 msgid "(binary data)" msgstr "(二進制資料)" #: ../debian/tmp/usr/share/apport/apport-gtk.py:161 ../gtk/apport-gtk.py:161 #, python-format msgid "Sorry, the application %s has stopped unexpectedly." msgstr "很抱歉,應用程式 %s 已無預期停止。" #: ../debian/tmp/usr/share/apport/apport-gtk.py:164 ../gtk/apport-gtk.py:164 #, python-format msgid "Sorry, %s has closed unexpectedly." msgstr "非常抱歉,%s 已無預警關閉。" #: ../kde/apport-kde.py:200 ../kde/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-kde.py:200 #: ../debian/tmp/usr/share/apport/apport-kde.py:238 #: ../debian/tmp/usr/share/apport/apport-gtk.py:169 ../gtk/apport-gtk.py:169 #, python-format msgid "Sorry, %s has experienced an internal error." msgstr "非常抱歉, %s 遭遇內部錯誤。" #: ../kde/apport-kde.py:186 ../debian/tmp/usr/share/apport/apport-kde.py:186 #: ../bin/apport-cli.py:194 ../gtk/apport-gtk.ui.h:6 #: ../debian/tmp/usr/bin/apport-cli.py:194 #: ../debian/tmp/usr/share/apport/apport-gtk.py:181 ../gtk/apport-gtk.py:181 #: ../debian/tmp/usr/share/apport/apport-gtk.ui.h:6 msgid "Send problem report to the developers?" msgstr "要將傳送問題報告給開發者嗎?" #: ../kde/apport-kde.py:194 ../debian/tmp/usr/share/apport/apport-kde.py:194 #: ../gtk/apport-gtk.ui.h:14 ../debian/tmp/usr/share/apport/apport-gtk.py:188 #: ../gtk/apport-gtk.py:188 ../debian/tmp/usr/share/apport/apport-gtk.ui.h:14 msgid "Send" msgstr "傳送" #: ../gtk/apport-gtk.py:231 ../debian/tmp/usr/share/apport/apport-gtk.py:231 msgid "Force Closed" msgstr "強制關閉" #: ../kde/apport-kde.py:235 ../kde/apport-kde.py:381 #: ../debian/tmp/usr/share/apport/apport-kde.py:235 #: ../debian/tmp/usr/share/apport/apport-kde.py:381 msgid "Relaunch" msgstr "重新啟動" #: ../debian/tmp/usr/share/apport/apport-gtk.py:239 ../gtk/apport-gtk.py:239 #, python-format msgid "The application %s has stopped responding." msgstr "應用程式 %s 已停止回應。" #: ../debian/tmp/usr/share/apport/apport-gtk.py:243 ../gtk/apport-gtk.py:243 #, python-format msgid "The program \"%s\" has stopped responding." msgstr "程式「%s」已停止回應。" #: ../kde/apport-kde.py:208 ../debian/tmp/usr/share/apport/apport-kde.py:208 #: ../debian/tmp/usr/share/apport/apport-gtk.py:259 ../gtk/apport-gtk.py:259 #, python-format msgid "Package: %s" msgstr "軟體包:%s" #: ../kde/apport-kde.py:214 ../debian/tmp/usr/share/apport/apport-kde.py:214 #: ../debian/tmp/usr/share/apport/apport-gtk.py:265 ../gtk/apport-gtk.py:265 msgid "Sorry, a problem occurred while installing software." msgstr "非常抱歉,於安裝軟體時遭遇問題。" #: ../kde/apport-kde.py:220 ../debian/tmp/usr/share/apport/apport-kde.py:220 #: ../debian/tmp/usr/share/apport/apport-gtk.py:274 #: ../debian/tmp/usr/share/apport/apport-gtk.py:289 ../gtk/apport-gtk.py:274 #: ../gtk/apport-gtk.py:289 #, python-format msgid "The application %s has experienced an internal error." msgstr "應用程式 %s 已遭遇某內部錯誤。" #: ../kde/apport-kde.py:223 ../debian/tmp/usr/share/apport/apport-kde.py:223 #: ../debian/tmp/usr/share/apport/apport-gtk.py:277 ../gtk/apport-gtk.py:277 #, python-format msgid "The application %s has closed unexpectedly." msgstr "應用程式 %s 已無預警關閉。" #: ../kde/apport-kde.py:245 ../debian/tmp/usr/share/apport/apport-kde.py:245 #: ../debian/tmp/usr/share/apport/apport-gtk.py:299 ../gtk/apport-gtk.py:299 msgid "Ignore future problems of this type" msgstr "忽略未來發生的此類型問題" #: ../kde/apport-kde.py:289 ../debian/tmp/usr/share/apport/apport-kde.py:289 #: ../debian/tmp/usr/share/apport/apport-gtk.py:579 ../gtk/apport-gtk.py:579 msgid "Hide Details" msgstr "隱藏詳細資料" #: ../debian/tmp/usr/bin/apport-unpack.py:22 ../bin/apport-unpack.py:22 #, python-format msgid "Usage: %s <report> <target directory>" msgstr "用法:%s <回報檔> <目標目錄>" #: ../debian/tmp/usr/bin/apport-unpack.py:42 ../bin/apport-unpack.py:42 msgid "Destination directory exists and is not empty." msgstr "目的目錄存在且不是空的。" #: ../kde/apport-kde.py:315 ../debian/tmp/usr/share/apport/apport-kde.py:315 msgid "Username:" msgstr "" #: ../kde/apport-kde.py:316 ../debian/tmp/usr/share/apport/apport-kde.py:316 msgid "Password:" msgstr "" #: ../kde/apport-kde.py:406 ../debian/tmp/usr/share/apport/apport-kde.py:406 msgid "Collecting Problem Information" msgstr "正收集問題資訊" #: ../kde/apport-kde.py:407 ../debian/tmp/usr/share/apport/apport-kde.py:407 #: ../bin/apport-cli.py:254 ../debian/tmp/usr/bin/apport-cli.py:254 msgid "Collecting problem information" msgstr "正在收集問題資訊" #: ../kde/apport-kde.py:408 ../debian/tmp/usr/share/apport/apport-kde.py:408 msgid "" "The collected information can be sent to the developers to improve the " "application. This might take a few minutes." msgstr "收集之資訊會傳送予開發者以改善該應用程式。此舉或需數分鐘。" #: ../kde/apport-kde.py:434 ../debian/tmp/usr/share/apport/apport-kde.py:434 msgid "Uploading Problem Information" msgstr "正上傳問題資訊" #: ../apport/com.ubuntu.apport.policy.in.h:1 msgid "Collect system information" msgstr "蒐集系統資訊" #: ../apport/com.ubuntu.apport.policy.in.h:2 msgid "" "Authentication is required to collect system information for this problem " "report" msgstr "若要為此問題回報蒐集系統資訊需先通過身份驗證" #: ../apport/com.ubuntu.apport.policy.in.h:3 msgid "System problem reports" msgstr "" #: ../apport/com.ubuntu.apport.policy.in.h:4 msgid "" "Please enter your password to access problem reports of system programs" msgstr "" #: ../kde/apport-kde-mime.desktop.in.h:1 ../kde/apport-kde.desktop.in.h:1 #: ../gtk/apport-gtk.desktop.in.h:1 msgid "Report a problem..." msgstr "報告問題..." #: ../kde/apport-kde-mime.desktop.in.h:2 ../kde/apport-kde.desktop.in.h:2 #: ../gtk/apport-gtk.desktop.in.h:2 msgid "Report a malfunction to the developers" msgstr "報告問題予開發者" #: ../bin/apport-valgrind.py:37 ../debian/tmp/usr/bin/apport-valgrind.py:37 msgid "See man page for details." msgstr "" #: ../bin/apport-valgrind.py:43 ../debian/tmp/usr/bin/apport-valgrind.py:43 msgid "specify the log file name produced by valgrind" msgstr "" #: ../bin/apport-valgrind.py:46 ../debian/tmp/usr/bin/apport-valgrind.py:46 msgid "" "reuse a previously created sandbox dir (SDIR) or, if it does not exist, " "create it" msgstr "" #: ../bin/apport-valgrind.py:50 ../debian/tmp/usr/bin/apport-valgrind.py:50 msgid "" "do not create or reuse a sandbox directory for additional debug symbols " "but rely only on installed debug symbols." msgstr "不能新增或使用之前的沙盒給額外的Debug symbol 用途,但僅依靠安裝的 debug symbols" #: ../bin/apport-valgrind.py:54 ../debian/tmp/usr/bin/apport-valgrind.py:54 msgid "" "reuse a previously created cache dir (CDIR) or, if it does not exist, create " "it" msgstr "" #: ../bin/apport-valgrind.py:58 ../debian/tmp/usr/bin/apport-valgrind.py:58 msgid "" "report download/install progress when installing packages into sandbox" msgstr "當軟體包安裝至沙箱時回報下載/安裝進度" #: ../bin/apport-valgrind.py:62 ../debian/tmp/usr/bin/apport-valgrind.py:62 msgid "" "the executable that is run under valgrind's memcheck tool for memory leak " "detection" msgstr "可執行的文件下運作記憶體洩漏檢測工具" #: ../bin/apport-retrace.py:65 ../bin/apport-valgrind.py:66 #: ../debian/tmp/usr/bin/apport-retrace.py:65 #: ../debian/tmp/usr/bin/apport-valgrind.py:66 msgid "" "Install an extra package into the sandbox (can be specified multiple times)" msgstr "安裝額外軟體包至沙箱內 (可以指定多次)" #: ../bin/apport-valgrind.py:97 ../debian/tmp/usr/bin/apport-valgrind.py:97 #, python-format msgid "Error: %s is not an executable. Stopping." msgstr "" #: ../debian/tmp/usr/share/apport/kernel_oops.py:29 ../data/kernel_oops.py:29 msgid "Your system might become unstable now and might need to be restarted." msgstr "您的系統現在也許會不穩定且需要重新啟動。" #: ../bin/apport-retrace.py:34 ../debian/tmp/usr/bin/apport-retrace.py:34 msgid "Do not put the new traces into the report, but write them to stdout." msgstr "不要將新的錯誤追溯放在報告中,但輸出至標準輸出(stdout)。" #: ../bin/apport-retrace.py:36 ../debian/tmp/usr/bin/apport-retrace.py:36 msgid "" "Start an interactive gdb session with the report's core dump (-o ignored; " "does not rewrite report)" msgstr "啟動新的互動式 gdb 連線階段及核心傾印報告(-o 忽略:不會複寫報告)" #: ../bin/apport-retrace.py:38 ../debian/tmp/usr/bin/apport-retrace.py:38 msgid "" "Write modified report to given file instead of changing the original report" msgstr "寫入已修改的報告至特定的檔案來替代改變原始報告" #: ../bin/apport-retrace.py:41 ../debian/tmp/usr/bin/apport-retrace.py:41 msgid "Remove the core dump from the report after stack trace regeneration" msgstr "在堆疊追溯重新產生後從報告中移除核心傾印" #: ../bin/apport-retrace.py:43 ../debian/tmp/usr/bin/apport-retrace.py:43 msgid "Override report's CoreFile" msgstr "覆蓋報告的核心檔案(CoreFile)" #: ../bin/apport-retrace.py:45 ../debian/tmp/usr/bin/apport-retrace.py:45 msgid "Override report's ExecutablePath" msgstr "覆蓋報告的可執行路徑(ExecutablePath)" #: ../bin/apport-retrace.py:47 ../debian/tmp/usr/bin/apport-retrace.py:47 msgid "Override report's ProcMaps" msgstr "覆蓋報告的行程對映(ProcMaps)" #: ../bin/apport-retrace.py:49 ../debian/tmp/usr/bin/apport-retrace.py:49 msgid "Rebuild report's Package information" msgstr "重建報告的軟體包資訊" #: ../bin/apport-retrace.py:51 ../debian/tmp/usr/bin/apport-retrace.py:51 msgid "" "Build a temporary sandbox and download/install the necessary packages and " "debug symbols in there; without this option it assumes that the necessary " "packages and debug symbols are already installed in the system. The argument " "points to the packaging system configuration base directory; if you specify " "\"system\", it will use the system configuration files, but will then only " "be able to retrace crashes that happened on the currently running release." msgstr "" "建立暫時沙箱,並下載/安裝需要的軟體包與除錯符於該沙箱中;若不採用此選項,將假定需要的軟體包與除錯符都已經安裝在系統之內。引數指向打包系統組態的基礎目錄;" "如果您有指定「system」(系統) 的話,它會使用系統組態檔,但是接著只能回追發生於目前執行中發行版的當掉情形。" #: ../bin/apport-retrace.py:55 ../debian/tmp/usr/bin/apport-retrace.py:55 msgid "" "Report download/install progress when installing packages into sandbox" msgstr "當軟體包安裝至沙箱時回報下載/安裝進度" #: ../bin/apport-retrace.py:57 ../debian/tmp/usr/bin/apport-retrace.py:57 msgid "Prepend timestamps to log messages, for batch operation" msgstr "在記錄訊息前加上時間戳記,供批次操作" #: ../bin/apport-retrace.py:59 ../debian/tmp/usr/bin/apport-retrace.py:59 msgid "" "Create and use third-party repositories from origins specified in reports" msgstr "製作並使用指定的第三方軟體庫來源置於報告中" #: ../bin/apport-retrace.py:61 ../debian/tmp/usr/bin/apport-retrace.py:61 msgid "Cache directory for packages downloaded in the sandbox" msgstr "為下載於沙箱內的軟體包製作目錄快取" #: ../bin/apport-retrace.py:63 ../debian/tmp/usr/bin/apport-retrace.py:63 msgid "" "Directory for unpacked packages. Future runs will assume that any already " "downloaded package is also extracted to this sandbox." msgstr "解開軟體包的目錄。未來執行時將假定任何已下載的軟體包也都抽出於此沙盒中。" #: ../bin/apport-retrace.py:67 ../debian/tmp/usr/bin/apport-retrace.py:67 msgid "" "Path to a file with the crash database authentication information. This is " "used when specifying a crash ID to upload the retraced stack traces (only if " "neither -g, -o, nor -s are specified)" msgstr "" #: ../bin/apport-retrace.py:69 ../debian/tmp/usr/bin/apport-retrace.py:69 msgid "" "Display retraced stack traces and ask for confirmation before sending them " "to the crash database." msgstr "" #: ../bin/apport-retrace.py:71 ../debian/tmp/usr/bin/apport-retrace.py:71 msgid "" "Path to the duplicate sqlite database (default: no duplicate checking)" msgstr "重複的 sqlite 資料庫路徑(預設:無重複檢查)" #: ../bin/apport-retrace.py:82 ../debian/tmp/usr/bin/apport-retrace.py:82 msgid "You cannot use -C without -S. Stopping." msgstr "" #. translators: don't translate y/n, apport currently only checks for "y" #: ../bin/apport-retrace.py:115 ../debian/tmp/usr/bin/apport-retrace.py:115 msgid "OK to send these as attachments? [y/n]" msgstr "允許傳送這些附件?" #: ../apport/ui.py:144 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:144 msgid "This package does not seem to be installed correctly" msgstr "這個軟體包似乎尚未正確安裝" #: ../apport/ui.py:149 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:149 #, python-format msgid "" "This is not an official %s package. Please remove any third party package " "and try again." msgstr "這不是官方的 %s 軟體包。請移除任何第三方軟體包並重試。" #: ../apport/ui.py:166 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:166 #, python-format msgid "" "You have some obsolete package versions installed. Please upgrade the " "following packages and check if the problem still occurs:\n" "\n" "%s" msgstr "" "您安裝了某些已過時的軟體包。請升級以下軟體包以及檢查問題是否繼續產生:\n" "\n" "%s" #: ../apport/ui.py:299 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:299 msgid "unknown program" msgstr "未知程式" #: ../apport/ui.py:300 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:300 #, python-format msgid "Sorry, the program \"%s\" closed unexpectedly" msgstr "對不起,\"%s\" 程式已不正常關閉" #: ../apport/ui.py:302 ../apport/ui.py:1412 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:302 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1412 #, python-format msgid "Problem in %s" msgstr "在 %s 中的問題" #: ../apport/ui.py:303 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:303 msgid "" "Your computer does not have enough free memory to automatically analyze the " "problem and send a report to the developers." msgstr "您的電腦並沒有足夠的可用記憶體可自動分析問題並傳送給開發者一份報告。" #: ../apport/ui.py:358 ../apport/ui.py:366 ../apport/ui.py:503 #: ../apport/ui.py:506 ../apport/ui.py:706 ../apport/ui.py:1218 #: ../apport/ui.py:1384 ../apport/ui.py:1388 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:358 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:366 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:503 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:506 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:706 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1218 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1384 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1388 msgid "Invalid problem report" msgstr "無效的問題回報" #: ../apport/ui.py:359 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:359 msgid "You are not allowed to access this problem report." msgstr "您並不被允許存取此份問題回報。" #: ../apport/ui.py:362 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:362 msgid "Error" msgstr "錯誤" #: ../apport/ui.py:363 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:363 msgid "There is not enough disk space available to process this report." msgstr "沒有足夠的磁碟空間以處理此份報告。" #: ../apport/ui.py:457 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:457 msgid "No package specified" msgstr "未指定軟體包" #: ../apport/ui.py:458 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:458 msgid "" "You need to specify a package or a PID. See --help for more information." msgstr "您需要指定一個套件或一個 PID。更多資訊請參考 --help。" #: ../apport/ui.py:481 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:481 msgid "Permission denied" msgstr "權限不足" #: ../apport/ui.py:482 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:482 msgid "" "The specified process does not belong to you. Please run this program as the " "process owner or as root." msgstr "指定的程序並不屬於您。請以程序擁有者或是 root 身份執行此程式。" #: ../apport/ui.py:401 ../apport/ui.py:484 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:401 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:484 msgid "Invalid PID" msgstr "無效的 PID" #: ../apport/ui.py:485 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:485 msgid "The specified process ID does not belong to a program." msgstr "指定的程序 ID 並不屬於一個程式。" #: ../apport/ui.py:504 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:504 #, python-format msgid "Symptom script %s did not determine an affected package" msgstr "徵狀判斷指令稿 %s 無法判斷出受影響的軟體包" #: ../apport/ui.py:507 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:507 #, python-format msgid "Package %s does not exist" msgstr "%s 軟體包不存在" #: ../apport/ui.py:531 ../apport/ui.py:718 ../apport/ui.py:723 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:531 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:718 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:723 msgid "Cannot create report" msgstr "" #: ../apport/ui.py:546 ../apport/ui.py:592 ../apport/ui.py:608 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:546 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:592 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:608 msgid "Updating problem report" msgstr "" #: ../apport/ui.py:547 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:547 msgid "" "You are not the reporter or subscriber of this problem report, or the report " "is a duplicate or already closed.\n" "\n" "Please create a new report using \"apport-bug\"." msgstr "" #: ../apport/ui.py:556 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:556 msgid "" "You are not the reporter of this problem report. It is much easier to mark a " "bug as a duplicate of another than to move your comments and attachments to " "a new bug.\n" "\n" "Subsequently, we recommend that you file a new bug report using \"apport-" "bug\" and make a comment in this bug about the one you file.\n" "\n" "Do you really want to proceed?" msgstr "" #: ../apport/ui.py:593 ../apport/ui.py:609 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:593 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:609 msgid "No additional information collected." msgstr "" #: ../apport/ui.py:660 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:660 msgid "What kind of problem do you want to report?" msgstr "您想要回報何種問題?" #: ../apport/ui.py:677 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:677 msgid "Unknown symptom" msgstr "未知的症狀" #: ../apport/ui.py:678 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:678 #, python-format msgid "The symptom \"%s\" is not known." msgstr "症狀 %s 未知。" #: ../apport/ui.py:709 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:709 msgid "" "After closing this message please click on an application window to report a " "problem about it." msgstr "" #: ../apport/ui.py:719 ../apport/ui.py:724 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:719 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:724 msgid "xprop failed to determine process ID of the window" msgstr "" #: ../apport/ui.py:738 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:738 msgid "%prog <report number>" msgstr "" #: ../apport/ui.py:740 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:740 msgid "Specify package name." msgstr "指定軟體包名稱。" #: ../apport/ui.py:742 ../apport/ui.py:793 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:742 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:793 msgid "Add an extra tag to the report. Can be specified multiple times." msgstr "" #: ../apport/ui.py:772 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:772 msgid "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" msgstr "" "%prog [options] [symptom|pid|package|program path|.apport/.crash file]" #: ../apport/ui.py:775 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:775 msgid "" "Start in bug filing mode. Requires --package and an optional --pid, or just " "a --pid. If neither is given, display a list of known symptoms. (Implied if " "a single argument is given.)" msgstr "" "啟動為錯誤歸檔模式。需要 --packages 和一個可選擇的 --pid,或是只需 --" "pid。若兩者都未給予,顯示一份已知症狀的列表。(暗示若只有給予單一參數。)" #: ../apport/ui.py:777 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:777 msgid "Click a window as a target for filing a problem report." msgstr "" #: ../apport/ui.py:779 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:779 msgid "Start in bug updating mode. Can take an optional --package." msgstr "" #: ../apport/ui.py:781 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:781 msgid "" "File a bug report about a symptom. (Implied if symptom name is given as only " "argument.)" msgstr "建立關於症狀的錯誤報告。(暗示是否只要提供症狀名稱作為引數。)" #: ../apport/ui.py:783 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:783 msgid "" "Specify package name in --file-bug mode. This is optional if a --pid is " "specified. (Implied if package name is given as only argument.)" msgstr "在 --file-bug 模式中指定套件名稱。若指定 --pid 則是可選擇的。(暗示若套件名稱是唯一給予的參數。)" #: ../apport/ui.py:785 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:785 msgid "" "Specify a running program in --file-bug mode. If this is specified, the bug " "report will contain more information. (Implied if pid is given as only " "argument.)" msgstr "" #: ../apport/ui.py:787 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:787 msgid "The provided pid is a hanging application." msgstr "提供的 pid 是懸凍的應用程式。" #: ../apport/ui.py:789 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:789 #, python-format msgid "" "Report the crash from given .apport or .crash file instead of the pending " "ones in %s. (Implied if file is given as only argument.)" msgstr "從特定的 .apport 或 .crash 檔案來回報當掉情形,代替等待中的 %s。(暗示若特定檔案是唯一給予的參數。)" #: ../apport/ui.py:791 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:791 msgid "" "In bug filing mode, save the collected information into a file instead of " "reporting it. This file can then be reported later on from a different " "machine." msgstr "" #: ../apport/ui.py:795 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:795 msgid "Print the Apport version number." msgstr "列印 Apport 版本號碼。" #: ../apport/ui.py:946 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:946 msgid "" "This will launch apport-retrace in a terminal window to examine the crash." msgstr "這會在終端機視窗中啟動 apport-retrace 以檢查程式當掉原因。" #: ../apport/ui.py:947 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:947 msgid "Run gdb session" msgstr "執行 gdb 作業階段" #: ../apport/ui.py:948 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:948 msgid "Run gdb session without downloading debug symbols" msgstr "執行 gdb 作業階段而不下載除錯符號" #. TRANSLATORS: %s contains the crash report file name #: ../apport/ui.py:950 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:950 #, python-format msgid "Update %s with fully symbolic stack trace" msgstr "以完整的符號堆疊追蹤來更新 %s" #: ../apport/ui.py:1046 ../apport/ui.py:1056 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1046 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1056 msgid "" "This problem report applies to a program which is not installed any more." msgstr "此問題報告用於不再安裝的程式。" #: ../apport/ui.py:1071 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1071 #, python-format msgid "" "The problem happened with the program %s which changed since the crash " "occurred." msgstr "發生問題的程式 %s 自上次遭遇當掉之後已有變動。" #: ../apport/ui.py:1118 ../apport/ui.py:1175 ../apport/ui.py:1390 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1118 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1175 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1390 msgid "This problem report is damaged and cannot be processed." msgstr "此問題回報已損壞且無法處理。" #. package does not exist #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1051 #: ../apport/ui.py:1051 msgid "The report belongs to a package that is not installed." msgstr "此報告屬於一份未安裝的套件。" #: ../apport/ui.py:1137 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1137 msgid "An error occurred while attempting to process this problem report:" msgstr "試圖處理問題回報時遭遇錯誤:" #: ../apport/ui.py:1219 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1219 msgid "Could not determine the package or source package name." msgstr "無法決定軟體包或原始碼軟體包名稱。" #: ../apport/ui.py:1237 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1237 msgid "Unable to start web browser" msgstr "無法啟動網頁瀏覽器" #: ../apport/ui.py:1238 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1238 #, python-format msgid "Unable to start web browser to open %s." msgstr "無法啟動網頁瀏覽器以開啟 %s。" #: ../apport/ui.py:1338 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1338 #, python-format msgid "Please enter your account information for the %s bug tracking system" msgstr "請輸入您的 %s 錯誤回報系統帳號資訊" #: ../apport/ui.py:1350 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1350 msgid "Network problem" msgstr "網路問題" #: ../apport/ui.py:1352 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1352 msgid "" "Cannot connect to crash database, please check your Internet connection." msgstr "無法連接到當機資料庫,請檢查您的網路連線。" #: ../apport/ui.py:1379 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1379 msgid "Memory exhaustion" msgstr "記憶體耗盡" #: ../apport/ui.py:1380 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1380 msgid "Your system does not have enough memory to process this crash report." msgstr "您的系統沒有足夠的記憶體來處理此份當機報告。" #: ../apport/ui.py:1415 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1415 #, python-format msgid "" "The problem cannot be reported:\n" "\n" "%s" msgstr "" "此問題無法被回報:\n" "\n" "%s" #: ../apport/ui.py:1471 ../apport/ui.py:1478 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1471 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1478 msgid "Problem already known" msgstr "已知問題" #: ../apport/ui.py:1472 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1472 msgid "" "This problem was already reported in the bug report displayed in the web " "browser. Please check if you can add any further information that might be " "helpful for the developers." msgstr "此問題在網路瀏覽器顯示之錯誤報告中已回報。請檢查您是否能新增任何可能對開發者有幫助的進一步資訊。" #: ../apport/ui.py:1479 #: ../debian/tmp/usr/lib/python2.7/dist-packages/apport/ui.py:1479 msgid "This problem was already reported to developers. Thank you!" msgstr "此問題已經回報給開發者。感謝您!" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:67 #: ../data/apportcheckresume.py:67 msgid "" "This occurred during a previous suspend, and prevented the system from " "resuming properly." msgstr "在上次暫停時遭遇這個問題,並使系統無法正常恢復。" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:69 #: ../data/apportcheckresume.py:69 msgid "" "This occurred during a previous hibernation, and prevented the system from " "resuming properly." msgstr "在上次休眠時遭遇這個問題,並使系統無法正常恢復。" #: ../debian/tmp/usr/share/apport/apportcheckresume.py:74 #: ../data/apportcheckresume.py:74 msgid "" "The resume processing hung very near the end and will have appeared to have " "completed normally." msgstr "回復行程在非常接近結束的時候停止回應,且將會表現出正常完成的情形。" #: ../bin/apport-cli.py:80 ../debian/tmp/usr/bin/apport-cli.py:80 msgid "Press any key to continue..." msgstr "按任意鍵繼續..." #: ../bin/apport-cli.py:87 ../debian/tmp/usr/bin/apport-cli.py:87 msgid "What would you like to do? Your options are:" msgstr "您要做什麼?選擇有:" #: ../bin/apport-cli.py:100 ../debian/tmp/usr/bin/apport-cli.py:100 #, python-format msgid "Please choose (%s):" msgstr "請選擇 (%s):" #: ../bin/apport-cli.py:164 ../debian/tmp/usr/bin/apport-cli.py:164 #, python-format msgid "(%i bytes)" msgstr "" #: ../bin/apport-cli.py:195 ../debian/tmp/usr/bin/apport-cli.py:195 msgid "" "After the problem report has been sent, please fill out the form in the\n" "automatically opened web browser." msgstr "" "在問題報告傳送後,請填寫自動開啟之\n" "網路瀏覽器中的表格。" #: ../bin/apport-cli.py:198 ../debian/tmp/usr/bin/apport-cli.py:198 #, python-format msgid "&Send report (%s)" msgstr "傳送報告 (%s)(&S)" #: ../bin/apport-cli.py:202 ../debian/tmp/usr/bin/apport-cli.py:202 msgid "&Examine locally" msgstr "於本地端檢查(&E)" #: ../bin/apport-cli.py:206 ../debian/tmp/usr/bin/apport-cli.py:206 msgid "&View report" msgstr "檢視報告(&V)" #: ../bin/apport-cli.py:207 ../debian/tmp/usr/bin/apport-cli.py:207 msgid "&Keep report file for sending later or copying to somewhere else" msgstr "保留回報檔,稍後傳送或複製至其他位置(&K)" #: ../bin/apport-cli.py:208 ../debian/tmp/usr/bin/apport-cli.py:208 msgid "Cancel and &ignore future crashes of this program version" msgstr "取消及忽略未來此程式版本的當機(&I)" #: ../bin/apport-cli.py:210 ../bin/apport-cli.py:287 ../bin/apport-cli.py:319 #: ../bin/apport-cli.py:340 ../debian/tmp/usr/bin/apport-cli.py:210 #: ../debian/tmp/usr/bin/apport-cli.py:287 #: ../debian/tmp/usr/bin/apport-cli.py:319 #: ../debian/tmp/usr/bin/apport-cli.py:340 msgid "&Cancel" msgstr "取消(&C)" #: ../bin/apport-cli.py:238 ../debian/tmp/usr/bin/apport-cli.py:238 msgid "Problem report file:" msgstr "問題回報檔:" #: ../bin/apport-cli.py:244 ../bin/apport-cli.py:249 #: ../debian/tmp/usr/bin/apport-cli.py:244 #: ../debian/tmp/usr/bin/apport-cli.py:249 msgid "&Confirm" msgstr "確認(&C)" #: ../bin/apport-cli.py:248 ../debian/tmp/usr/bin/apport-cli.py:248 #, python-format msgid "Error: %s" msgstr "錯誤:%s" #: ../bin/apport-cli.py:255 ../debian/tmp/usr/bin/apport-cli.py:255 msgid "" "The collected information can be sent to the developers to improve the\n" "application. This might take a few minutes." msgstr "" "收集的資訊可傳送予開發者以改進此\n" "應用程式。這可能需要數分鐘。" #: ../bin/apport-cli.py:268 ../debian/tmp/usr/bin/apport-cli.py:268 msgid "" "The collected information is being sent to the bug tracking system.\n" "This might take a few minutes." msgstr "" "已收集的資訊將傳送至臭蟲追蹤系統。\n" "這可能需要數分鐘。" #: ../bin/apport-cli.py:318 ../debian/tmp/usr/bin/apport-cli.py:318 msgid "&Done" msgstr "完成(&D)" #: ../bin/apport-cli.py:324 ../debian/tmp/usr/bin/apport-cli.py:324 msgid "none" msgstr "無" #: ../bin/apport-cli.py:325 ../debian/tmp/usr/bin/apport-cli.py:325 #, python-format msgid "Selected: %s. Multiple choices:" msgstr "已選擇:%s。多種選擇:" #: ../bin/apport-cli.py:341 ../debian/tmp/usr/bin/apport-cli.py:341 msgid "Choices:" msgstr "選項:" #: ../bin/apport-cli.py:355 ../debian/tmp/usr/bin/apport-cli.py:355 msgid "Path to file (Enter to cancel):" msgstr "檔案路徑 (按 Enter 取消):" #: ../bin/apport-cli.py:361 ../debian/tmp/usr/bin/apport-cli.py:361 msgid "File does not exist." msgstr "檔案不存在。" #: ../bin/apport-cli.py:363 ../debian/tmp/usr/bin/apport-cli.py:363 msgid "This is a directory." msgstr "這是個目錄。" #: ../bin/apport-cli.py:369 ../debian/tmp/usr/bin/apport-cli.py:369 msgid "To continue, you must visit the following URL:" msgstr "欲繼續,您必須造訪以下網址:" #: ../bin/apport-cli.py:371 ../debian/tmp/usr/bin/apport-cli.py:371 msgid "" "You can launch a browser now, or copy this URL into a browser on another " "computer." msgstr "您現在可以啟動瀏覽器,或複製此網址到另一臺電腦的瀏覽器中。" #: ../bin/apport-cli.py:373 ../debian/tmp/usr/bin/apport-cli.py:373 msgid "Launch a browser now" msgstr "現在啟動瀏覽器" #: ../bin/apport-cli.py:388 ../debian/tmp/usr/bin/apport-cli.py:388 msgid "No pending crash reports. Try --help for more information." msgstr "無等待中的當機報告。更多資訊請試試 --help。" #, no-c-format, python-format #~ msgid "Complete report (recommended; %s)" #~ msgstr "完整報告(推廌做法;%s)" #~ msgid "" #~ "<big><b>Send problem report to the developers?</b></big>\n" #~ "\n" #~ "After the problem report has been sent, please fill out the form in the " #~ "automatically opened web browser." #~ msgstr "" #~ "<big><b>要將問題報告傳送給開發者嗎?</b></big>\n" #~ "\n" #~ "傳送問題報告之後,請填寫自動開啟的網頁瀏覽器中的表格。" #~ msgid "Application problem" #~ msgstr "應用程式問題" #~ msgid "_Send Report" #~ msgstr "傳送報告(_S)" #~ msgid "Restart _Program" #~ msgstr "重新啟動程式(_P)" #, no-c-format #~ msgid "" #~ "<span weight=\"bold\" size=\"larger\">Sorry, the package \"%s\" failed to " #~ "install or upgrade.</span>" #~ msgstr "<span weight=\"bold\" size=\"larger\">對不起,無法安裝或升級 \"%s\" 套件。</span>" #~ msgid "" #~ "This will remove some large items from the report. These are very useful for " #~ "developers to debug the problem, but might be too big for you to upload if " #~ "you have a slow internet connection." #~ msgstr "這會從報告中移除某些大型事項。這對開發展偵錯來說非常有幫助,但當你的連線速度較慢時或許對您來說所需上傳的部份會太大。" #~ msgid "_Report Problem..." #~ msgstr "報告問題(_R)..." #~ msgid "Kernel problem" #~ msgstr "核心 (Kernel) 問題" #~ msgid "Content of the report" #~ msgstr "報告內容" #~ msgid "Package problem" #~ msgstr "套件問題" #~ msgid "You can help the developers to fix the problem by reporting it." #~ msgstr "您可報告這個問題,以協助開發者解決" #~ msgid "" #~ "You can help the developers to fix the package by reporting the problem." #~ msgstr "您可報告此問題以協助解決。" #~ msgid "_Ignore future crashes of this program version" #~ msgstr "忽略此程式版本未來的問題(_I)" #~ msgid "&Report Problem..." #~ msgstr "報告問題(&R)..." #, python-format #~ msgid "The package \"%s\" failed to install or upgrade." #~ msgstr "\"%s\" 套件無法安裝或升級" #, python-format #~ msgid "This is not a genuine %s package" #~ msgstr "這不是一個正版 %s 套件" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other\n" #~ "private information), you can help to improve the application by reporting\n" #~ "the problem." #~ msgstr "" #~ "若您沒有做任何機密動作(輸入密碼或其他\n" #~ "私人資訊),你可藉由回報此問題來協助應\n" #~ "用程式的改進。" #, python-format #~ msgid "%s closed unexpectedly on %s at %s." #~ msgstr "%s 未預期的關閉在 %s 於 %s。" #, python-format #~ msgid "&Send complete report (recommended; %s)" #~ msgstr "傳送完整報告(建議;%s)(&S)" #~ msgid "" #~ "This occured during a previous suspend and prevented it from resuming " #~ "properly." #~ msgstr "此狀況發生於前一次待命時並阻止其正常的回復。" #~ msgid "" #~ "This occured during a previous hibernate and prevented it from resuming " #~ "properly." #~ msgstr "此狀況發生於前一次休眠時並阻止其正常的回復。" #~ msgid "%prog [options] <apport problem report | crash ID>" #~ msgstr "%prog [options] <apport problem report | crash ID>" #~ msgid "" #~ "you either need to do a local operation (-s, -g, -o) or supply an " #~ "authentication file (--auth); see --help for a short help" #~ msgstr "您需要進行一個本地端作業(-s, -g -o)或是提供一個認證檔(--auth);參考 --help 以取得簡短的說明" #~ msgid "incorrect number of arguments; use --help for a short help" #~ msgstr "不正確的參數數目;使用 --help 以取得簡短的說明" #~ msgid "Send this data to the developers?" #~ msgstr "是否傳送本資料予開發者?" #, python-format #~ msgid "Sorry, the program \"%s\" closed unexpectedly." #~ msgstr "抱歉,「%s」程式不正常關閉。" #~ msgid "Restart &Program" #~ msgstr "重啟程式(&P)" #, python-format #~ msgid "Sorry, %s closed unexpectedly." #~ msgstr "抱歉,%s 不正常關閉。" #, python-format #~ msgid "Sorry, the package \"%s\" failed to install or upgrade." #~ msgstr "抱歉,「%s」套件無法安裝或升級。" #~ msgid "Your system encountered a serious kernel problem." #~ msgstr "您的系統遭遇到嚴重的內核問題。" #, python-format #~ msgid "Send &reduced report (slow Internet connection; %s)" #~ msgstr "傳送簡短報告 (慢速網際網路連線;%s)(&R)" #, no-c-format, python-format #~ msgid "Reduced report (slow Internet connection; %s)" #~ msgstr "簡短報告 (慢速網際網路連線;%s)" #~ msgid "" #~ "If you were not doing anything confidential (entering passwords or other " #~ "private information), you can help to improve the application by reporting " #~ "the problem." #~ msgstr "如您正在做的並無涉及機密資料 (例如密碼或其他私人資訊),您可以回報此問題幫忙改善應用程式。" #, python-format #~ msgid "Sorry, the application %s has closed unexpectedly." #~ msgstr "非常抱歉,應用程式 %s 已無預警關閉。" #~ msgid "Your system might become unstablenow and might need to be restarted." #~ msgstr "現在您的系統可能變得不穩定,並且可能需要重新啟動。" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/problem_report.py��������������������������������������������������������������������0000664�0000000�0000000�00000064363�14416106601�013472� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# vim: set encoding=UTF-8 fileencoding=UTF-8 : '''Store, load, and handle problem reports.''' # Copyright (C) 2006 - 2012 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import locale import zlib, base64, time, sys, gzip, struct, os from email.encoders import encode_base64 from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email.mime.text import MIMEText from io import BytesIO if sys.version[0] < '3': from UserDict import IterableUserDict as UserDict UserDict # pyflakes _python2 = True else: from collections import UserDict _python2 = False class CompressedValue: '''Represent a ProblemReport value which is gzip compressed.''' def __init__(self, value=None, name=None): '''Initialize an empty CompressedValue object with an optional name.''' self.gzipvalue = None self.name = name # By default, compressed values are in gzip format. Earlier versions of # problem_report used zlib format (without gzip header). If you have # such a case, set legacy_zlib to True. self.legacy_zlib = False if value: self.set_value(value) def set_value(self, value): '''Set uncompressed value.''' out = BytesIO() gzip.GzipFile(self.name, mode='wb', fileobj=out, mtime=0).write(value) self.gzipvalue = out.getvalue() self.legacy_zlib = False def get_value(self): '''Return uncompressed value.''' if not self.gzipvalue: return None if self.legacy_zlib: return zlib.decompress(self.gzipvalue) return gzip.GzipFile(fileobj=BytesIO(self.gzipvalue)).read() def write(self, file): '''Write uncompressed value into given file-like object.''' assert self.gzipvalue if self.legacy_zlib: file.write(zlib.decompress(self.gzipvalue)) return gz = gzip.GzipFile(fileobj=BytesIO(self.gzipvalue)) while True: block = gz.read(1048576) if not block: break file.write(block) def __len__(self): '''Return length of uncompressed value.''' assert self.gzipvalue if self.legacy_zlib: return len(self.get_value()) return int(struct.unpack('<L', self.gzipvalue[-4:])[0]) def splitlines(self): '''Behaves like splitlines() for a normal string.''' return self.get_value().splitlines() class ProblemReport(UserDict): def __init__(self, type='Crash', date=None): '''Initialize a fresh problem report. type can be 'Crash', 'Packaging', 'KernelCrash' or 'KernelOops'. date is the desired date/time string; if None (default), the current local time is used. ''' if date is None: date = time.asctime() self.data = {'ProblemType': type, 'Date': date} # keeps track of keys which were added since the last ctor or load() self.old_keys = set() def load(self, file, binary=True, key_filter=None): '''Initialize problem report from a file-like object. If binary is False, binary data is not loaded; the dictionary key is created, but its value will be an empty string. If it is True, it is transparently uncompressed and available as dictionary byte array values. If binary is 'compressed', the compressed value is retained, and the dictionary value will be a CompressedValue object. This is useful if the compressed value is still useful (to avoid recompression if the file needs to be written back). file needs to be opened in binary mode. If key_filter is given, only those keys will be loaded. Files are in RFC822 format, but with case sensitive keys. ''' self._assert_bin_mode(file) self.data.clear() key = None value = None b64_block = False bd = None if key_filter: remaining_keys = set(key_filter) else: remaining_keys = None for line in file: # continuation line if line.startswith(b' '): if b64_block and not binary: value = None continue assert (key is not None and value is not None) if b64_block: block = base64.b64decode(line) if bd: value += bd.decompress(block) else: if binary == 'compressed': # check gzip header; if absent, we have legacy zlib # data if value.gzipvalue == b'' and not block.startswith(b'\037\213\010'): value.legacy_zlib = True value.gzipvalue += block else: # lazy initialization of bd # skip gzip header, if present if block.startswith(b'\037\213\010'): bd = zlib.decompressobj(-zlib.MAX_WBITS) value = bd.decompress(self._strip_gzip_header(block)) else: # legacy zlib-only format used default block # size bd = zlib.decompressobj() value += bd.decompress(block) else: if len(value) > 0: value += b'\n' if line.endswith(b'\n'): value += line[1:-1] else: value += line[1:] else: if b64_block: if bd: value += bd.flush() b64_block = False bd = None if key: if remaining_keys is not None: try: remaining_keys.remove(key) self.data[key] = self._try_unicode(value) if not remaining_keys: key = None break except KeyError: pass else: self.data[key] = self._try_unicode(value) (key, value) = line.split(b':', 1) if not _python2: key = key.decode('ASCII') value = value.strip() if value == b'base64': if binary == 'compressed': value = CompressedValue(key.encode()) value.gzipvalue = b'' else: value = b'' b64_block = True if key is not None: self.data[key] = self._try_unicode(value) self.old_keys = set(self.data.keys()) def extract_keys(self, file, bin_keys, dir): '''Extract only one binary element from the problem_report Binary elements like kernel crash dumps can be very big. This method extracts directly files without loading the report into memory. ''' self._assert_bin_mode(file) # support singe key and collection of keys if isinstance(bin_keys, str): bin_keys = [bin_keys] key = None value = None missing_keys = list(bin_keys) b64_block = {} bd = None out = None for line in file: # Identify the bin_keys we're looking for while not line.startswith(b' '): (key, value) = line.split(b':', 1) if not _python2: key = key.decode('ASCII') if key not in missing_keys: break b64_block[key] = False missing_keys.remove(key) value = value.strip() if value == b'base64': value = b'' b64_block[key] = True try: bd = None with open(os.path.join(dir, key), 'wb') as out: for line in file: # continuation line if line.startswith(b' '): assert (key is not None and value is not None) if b64_block[key]: block = base64.b64decode(line) if bd: out.write(bd.decompress(block)) else: # lazy initialization of bd # skip gzip header, if present if block.startswith(b'\037\213\010'): bd = zlib.decompressobj(-zlib.MAX_WBITS) out.write(bd.decompress(self._strip_gzip_header(block))) else: # legacy zlib-only format used default block # size bd = zlib.decompressobj() out.write(bd.decompress(block)) else: break except IOError: raise IOError('unable to open %s' % (os.path.join(dir, key))) else: break if missing_keys: raise KeyError('Cannot find %s in report' % ', '.join(missing_keys)) if False in b64_block.values(): raise ValueError('%s has no binary content' % [item for item, element in b64_block.items() if element is False]) def get_timestamp(self) -> int: '''Get timestamp (seconds since epoch) from Date field Return None if it is not present. ''' # report time is from asctime(), not in locale representation orig_ctime = locale.getlocale(locale.LC_TIME) try: try: locale.setlocale(locale.LC_TIME, 'C') return int(time.mktime(time.strptime(self['Date']))) except KeyError: return None finally: locale.setlocale(locale.LC_TIME, orig_ctime) except locale.Error: return None def has_removed_fields(self): '''Check if the report has any keys which were not loaded. This could happen when using binary=False in load(). ''' return None in self.values() @classmethod def _is_binary(klass, string): '''Check if the given strings contains binary data.''' if type(string) == bytes: for c in string: if c < 32 and not chr(c).isspace(): return True return False @classmethod def _try_unicode(klass, value): '''Try to convert bytearray value to unicode''' if type(value) == bytes and not klass._is_binary(value): try: return value.decode('UTF-8') except UnicodeDecodeError: return value return value def write(self, file, only_new=False): '''Write information into the given file-like object. If only_new is True, only keys which have been added since the last load() are written (i. e. those returned by new_keys()). If a value is a string, it is written directly. Otherwise it must be a tuple of the form (file, encode=True, limit=None, fail_on_empty=False). The first argument can be a file name or a file-like object, which will be read and its content will become the value of this key. 'encode' specifies whether the contents will be gzip compressed and base64-encoded (this defaults to True). If limit is set to a positive integer, the file is not attached if it's larger than the given limit, and the entire key will be removed. If fail_on_empty is True, reading zero bytes will cause an IOError. file needs to be opened in binary mode. Files are written in RFC822 format. ''' self._assert_bin_mode(file) # sort keys into ASCII non-ASCII/binary attachment ones, so that # the base64 ones appear last in the report asckeys = [] binkeys = [] for k in self.data.keys(): if only_new and k in self.old_keys: continue v = self.data[k] if hasattr(v, 'find'): if self._is_binary(v): binkeys.append(k) else: asckeys.append(k) else: if not isinstance(v, CompressedValue) and len(v) >= 2 and not v[1]: # force uncompressed asckeys.append(k) else: binkeys.append(k) asckeys.sort() if 'ProblemType' in asckeys: asckeys.remove('ProblemType') asckeys.insert(0, 'ProblemType') binkeys.sort() # write the ASCII keys first for k in asckeys: v = self.data[k] # if it's a tuple, we have a file reference; read the contents if not hasattr(v, 'find'): if len(v) >= 3 and v[2] is not None: limit = v[2] else: limit = None fail_on_empty = len(v) >= 4 and v[3] if hasattr(v[0], 'read'): v = v[0].read() # file-like object else: with open(v[0], 'rb') as f: # file name v = f.read() if fail_on_empty and len(v) == 0: raise IOError('did not get any data for field ' + k) if limit is not None and len(v) > limit: del self.data[k] continue if isinstance(v, str): # unicode → str v = v.encode('UTF-8') file.write(k.encode('ASCII')) if b'\n' in v: # multiline value file.write(b':\n ') file.write(v.replace(b'\n', b'\n ')) else: file.write(b': ') file.write(v) file.write(b'\n') # now write the binary keys with gzip compression and base64 encoding for k in binkeys: v = self.data[k] limit = None size = 0 curr_pos = file.tell() file.write(k.encode('ASCII')) file.write(b': base64\n ') # CompressedValue if isinstance(v, CompressedValue): file.write(base64.b64encode(v.gzipvalue)) file.write(b'\n') continue # write gzip header gzip_header = b'\037\213\010\010\000\000\000\000\002\377' + k.encode('UTF-8') + b'\000' file.write(base64.b64encode(gzip_header)) file.write(b'\n ') crc = zlib.crc32(b'') bc = zlib.compressobj(6, zlib.DEFLATED, -zlib.MAX_WBITS, zlib.DEF_MEM_LEVEL, 0) # direct value if hasattr(v, 'find'): size += len(v) crc = zlib.crc32(v, crc) outblock = bc.compress(v) if outblock: file.write(base64.b64encode(outblock)) file.write(b'\n ') # file reference else: if len(v) >= 3 and v[2] is not None: limit = v[2] if hasattr(v[0], 'read'): f = v[0] # file-like object else: f = open(v[0], 'rb') # file name while True: block = f.read(1048576) size += len(block) crc = zlib.crc32(block, crc) if limit is not None: if size > limit: # roll back file.seek(curr_pos) file.truncate(curr_pos) del self.data[k] crc = None break if block: outblock = bc.compress(block) if outblock: file.write(base64.b64encode(outblock)) file.write(b'\n ') else: break if not hasattr(v[0], 'read'): f.close() if len(v) >= 4 and v[3]: if size == 0: raise IOError('did not get any data for field %s from %s' % (k, str(v[0]))) # flush compressor and write the rest if not limit or size <= limit: block = bc.flush() # append gzip trailer: crc (32 bit) and size (32 bit) if crc: block += struct.pack('<L', crc & 0xFFFFFFFF) block += struct.pack('<L', size & 0xFFFFFFFF) file.write(base64.b64encode(block)) file.write(b'\n') def add_to_existing(self, reportfile, keep_times=False): '''Add this report's data to an already existing report file. The file will be temporarily chmod'ed to 000 to prevent frontends from picking up a hal-updated report file. If keep_times is True, then the file's atime and mtime restored after updating. ''' st = os.stat(reportfile) try: f = open(reportfile, 'ab') os.chmod(reportfile, 0) self.write(f) f.close() finally: if keep_times: os.utime(reportfile, (st.st_atime, st.st_mtime)) os.chmod(reportfile, st.st_mode) def write_mime(self, file, attach_treshold=5, extra_headers={}, skip_keys=None, priority_fields=None): '''Write MIME/Multipart RFC 2822 formatted data into file. file must be a file-like object, not a path. It needs to be opened in binary mode. If a value is a string or a CompressedValue, it is written directly. Otherwise it must be a tuple containing the source file and an optional boolean value (in that order); the first argument can be a file name or a file-like object, which will be read and its content will become the value of this key. The file will be gzip compressed, unless the key already ends in .gz. attach_treshold specifies the maximum number of lines for a value to be included into the first inline text part. All bigger values (as well as all non-ASCII ones) will become an attachment, as well as text values bigger than 1 kB. Extra MIME preamble headers can be specified, too, as a dictionary. skip_keys is a set/list specifying keys which are filtered out and not written to the destination file. priority_fields is a set/list specifying the order in which keys should appear in the destination file. ''' self._assert_bin_mode(file) keys = sorted(self.data.keys()) text = '' attachments = [] if 'ProblemType' in keys: keys.remove('ProblemType') keys.insert(0, 'ProblemType') if priority_fields: counter = 0 for priority_field in priority_fields: if priority_field in keys: keys.remove(priority_field) keys.insert(counter, priority_field) counter += 1 for k in keys: if skip_keys and k in skip_keys: continue v = self.data[k] attach_value = None # compressed values are ready for attaching in gzip form if isinstance(v, CompressedValue): attach_value = v.gzipvalue # if it's a tuple, we have a file reference; read the contents # and gzip it elif not hasattr(v, 'find'): attach_value = '' if hasattr(v[0], 'read'): f = v[0] # file-like object else: f = open(v[0], 'rb') # file name if k.endswith('.gz'): attach_value = f.read() else: io = BytesIO() gf = gzip.GzipFile(k, mode='wb', fileobj=io, mtime=0) while True: block = f.read(1048576) if block: gf.write(block) else: gf.close() break attach_value = io.getvalue() f.close() # binary value elif self._is_binary(v): if k.endswith('.gz'): attach_value = v else: attach_value = CompressedValue(v, k).gzipvalue # if we have an attachment value, create an attachment if attach_value: att = MIMEBase('application', 'x-gzip') if k.endswith('.gz'): att.add_header('Content-Disposition', 'attachment', filename=k) else: att.add_header('Content-Disposition', 'attachment', filename=k + '.gz') att.set_payload(attach_value) encode_base64(att) attachments.append(att) else: # plain text value size = len(v) # ensure that byte arrays are valid UTF-8 if type(v) == bytes: v = v.decode('UTF-8', 'replace') # convert unicode to UTF-8 str assert isinstance(v, str) lines = len(v.splitlines()) if size <= 1000 and lines == 1: v = v.rstrip() text += k + ': ' + v + '\n' elif size <= 1000 and lines <= attach_treshold: text += k + ':\n ' if not v.endswith('\n'): v += '\n' text += v.strip().replace('\n', '\n ') + '\n' else: # too large, separate attachment att = MIMEText(v, _charset='UTF-8') att.add_header('Content-Disposition', 'attachment', filename=k + '.txt') attachments.append(att) # create initial text attachment att = MIMEText(text, _charset='UTF-8') att.add_header('Content-Disposition', 'inline') attachments.insert(0, att) msg = MIMEMultipart() for k, v in extra_headers.items(): msg.add_header(k, v) for a in attachments: msg.attach(a) file.write(msg.as_string().encode('UTF-8')) file.write(b'\n') def __setitem__(self, k, v): assert hasattr(k, 'isalnum') if not k.replace('.', '').replace('-', '').replace('_', '').isalnum(): raise ValueError("key '%s' contains invalid characters (only numbers, letters, '.', '_', and '-' are allowed)" % k) # value must be a string or a CompressedValue or a file reference # (tuple (string|file [, bool, [, max_size [, fail_on_empty]]])) if not (isinstance(v, CompressedValue) or hasattr(v, 'isalnum') or (isinstance(v, tuple) and ( len(v) == 1 or (len(v) >= 2 and len(v) <= 4 and v[1] in (True, False))) and (hasattr(v[0], 'isalnum') or hasattr(v[0], 'read')))): raise TypeError("value for key %s must be a string, CompressedValue, or a file reference" % k) return self.data.__setitem__(k, v) def new_keys(self): '''Return newly added keys. Return the set of keys which have been added to the report since it was constructed or loaded. ''' return set(self.data.keys()) - self.old_keys @classmethod def _strip_gzip_header(klass, line): '''Strip gzip header from line and return the rest.''' if _python2: return klass._strip_gzip_header_py2(line) flags = line[3] offset = 10 if flags & 4: # FLG.FEXTRA offset += line[offset] + 1 if flags & 8: # FLG.FNAME while line[offset] != 0: offset += 1 offset += 1 if flags & 16: # FLG.FCOMMENT while line[offset] != 0: offset += 1 offset += 1 if flags & 2: # FLG.FHCRC offset += 2 return line[offset:] @classmethod def _strip_gzip_header_py2(klass, line): '''Strip gzip header from line and return the rest. (Python 2)''' flags = ord(line[3]) offset = 10 if flags & 4: # FLG.FEXTRA offset += line[offset] + 1 if flags & 8: # FLG.FNAME while ord(line[offset]) != 0: offset += 1 offset += 1 if flags & 16: # FLG.FCOMMENT while ord(line[offset]) != 0: offset += 1 offset += 1 if flags & 2: # FLG.FHCRC offset += 2 return line[offset:] @classmethod def _assert_bin_mode(klass, file): '''Assert that given file object is in binary mode''' if _python2: assert (type(file) == BytesIO or 'b' in file.mode), 'file stream must be in binary mode' else: assert not hasattr(file, 'encoding'), 'file stream must be in binary mode' �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/setup.cfg����������������������������������������������������������������������������0000664�0000000�0000000�00000000033�14373133052�011670� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������[build_i18n] domain=apport �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/setup.py�����������������������������������������������������������������������������0000775�0000000�0000000�00000012502�14416106601�011566� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 from glob import glob import os.path, shutil, sys, subprocess from distutils.version import StrictVersion import distutils.core import distutils.command.build import distutils.command.clean try: import DistUtilsExtra.auto except ImportError: sys.stderr.write('To build Apport you need https://launchpad.net/python-distutils-extra\n') sys.exit(1) assert StrictVersion(DistUtilsExtra.auto.__version__) >= '2.24', 'needs DistUtilsExtra.auto >= 2.24' class build_java_subdir(distutils.core.Command): '''Java crash handler build command''' description = 'Compile java components of Apport' user_options = [] def initialize_options(self): pass def finalize_options(self): pass def run(self): oldwd = os.getcwd() os.chdir('java') subprocess.check_call(['javac', '-source', '1.6', '-target', '1.6'] + glob('com/ubuntu/apport/*.java')) subprocess.check_call(['jar', 'cvf', 'apport.jar'] + glob('com/ubuntu/apport/*.class')) subprocess.check_call(['javac', '-source', '1.6', '-target', '1.6', 'crash.java']) subprocess.check_call(['jar', 'cvf', 'crash.jar', 'crash.class']) os.chdir(oldwd) class clean_java_subdir(DistUtilsExtra.auto.clean_build_tree): '''Java crash handler clean command''' def run(self): DistUtilsExtra.auto.clean_build_tree.run(self) for (root, dirs, files) in os.walk('java'): for f in files: if f.endswith('.jar') or f.endswith('.class'): os.unlink(os.path.join(root, f)) class install_fix_hashbangs(DistUtilsExtra.auto.install_auto): '''Fix hashbang lines in scripts in data dir.''' def run(self): DistUtilsExtra.auto.install_auto.run(self) new_hashbang = '#!%s\n' % sys.executable.rsplit('.', 1)[0] for d in (os.path.join(self.install_data, 'share', 'apport'), os.path.join(self.install_data, 'bin')): for (path, _, files) in os.walk(d): for fname in files: f = os.path.join(path, fname) with open(f) as fd: try: lines = fd.readlines() except UnicodeDecodeError: # ignore data files like spinner.gif continue if lines[0].startswith('#!') and 'python' in lines[0]: distutils.log.info('Updating hashbang of %s', f) lines[0] = new_hashbang with open(f, 'w') as fd: for line in lines: fd.write(line) # # main # # try to auto-setup packaging_impl if len(sys.argv) >= 2 and sys.argv[1] != 'sdist' and not os.path.exists('apport/packaging_impl.py'): if os.path.exists('/etc/apt/sources.list'): print('Installing apt/dpkg packaging backend.') shutil.copy('backends/packaging-apt-dpkg.py', 'apport/packaging_impl.py') elif os.path.exists('/usr/bin/rpm'): print('Installing RPM packaging backend.') shutil.copy('backends/packaging_rpm.py', 'apport/packaging_impl.py') else: print('Could not determine system package manager. Copy appropriate backends/packaging* to apport/packaging_impl.py') sys.exit(1) optional_data_files = [] cmdclass = {'install': install_fix_hashbangs} # if we have Java available, build the Java crash handler try: subprocess.check_call(['javac', '-version'], stderr=subprocess.PIPE) distutils.command.build.build.sub_commands.append(('build_java_subdir', None)) optional_data_files.append(('share/java', ['java/apport.jar'])) cmdclass['build_java_subdir'] = build_java_subdir cmdclass['clean'] = clean_java_subdir print('Java support: Enabled') except (OSError, subprocess.CalledProcessError): print('Java support: Java not available, not building Java crash handler') from apport.ui import __version__ # determine systemd unit directory try: systemd_unit_dir = subprocess.check_output( ['pkg-config', '--variable=systemdsystemunitdir', 'systemd'], universal_newlines=True).strip() systemd_tmpfiles_dir = subprocess.check_output( ['pkg-config', '--variable=tmpfilesdir', 'systemd'], universal_newlines=True).strip() except subprocess.CalledProcessError: # hardcoded fallback path systemd_unit_dir = '/lib/systemd/system' systemd_tmpfiles_dir = '/usr/lib/tmpfiles.d' DistUtilsExtra.auto.setup( name='apport', author='Martin Pitt', author_email='martin.pitt@ubuntu.com', url='https://launchpad.net/apport', license='gpl', description='intercept, process, and report crashes and bug reports', version=__version__, data_files=[('share/doc/apport/', glob('doc/*.txt')), # these are not supposed to be called directly, use apport-bug instead ('share/apport', ['gtk/apport-gtk', 'kde/apport-kde']), ('lib/pm-utils/sleep.d/', glob('pm-utils/sleep.d/*')), ('/lib/udev/rules.d', glob('udev/*.rules')), (systemd_unit_dir, glob('data/systemd/*.s*')), (systemd_tmpfiles_dir, glob('data/systemd/*.conf')), ] + optional_data_files, cmdclass=cmdclass ) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/��������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�15013704444�011033� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/data/���������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14416105132�011737� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/data/testclick/�����������������������������������������������������������������0000775�0000000�0000000�00000000000�14416105132�013724� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/data/testclick/CMakeLists.txt���������������������������������������������������0000664�0000000�0000000�00000000471�14416105132�016466� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������project(com.example.testclick) cmake_minimum_required(VERSION 2.8.9) # Standard install paths include(GNUInstallDirs) set(CMAKE_INSTALL_PREFIX /) set(CMAKE_INSTALL_BINDIR /) set(DATA_DIR /) install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bin/pycrash DESTINATION ${CMAKE_INSTALL_BINDIR}) add_subdirectory(click) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/data/testclick/bin/�������������������������������������������������������������0000775�0000000�0000000�00000000000�14416105132�014474� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/data/testclick/bin/pycrash������������������������������������������������������0000775�0000000�0000000�00000000070�14416105132�016070� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 def do_stuff(): 1/0 do_stuff() ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/data/testclick/click/�����������������������������������������������������������0000775�0000000�0000000�00000000000�14416105132�015011� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/data/testclick/click/CMakeLists.txt���������������������������������������������0000664�0000000�0000000�00000000254�14416105132�017552� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������configure_file(manifest.json.in ${CMAKE_CURRENT_BINARY_DIR}/manifest.json) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/manifest.json DESTINATION ${CMAKE_INSTALL_PREFIX}) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/data/testclick/click/manifest.json.in�������������������������������������������0000664�0000000�0000000�00000000273�14416105132�020121� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ "name": "testclick", "title": "apport test click app", "framework": "ubuntu-sdk-14.04-qml", "maintainer": "Martin Pitt <martin.pitt@ubuntu.com>", "version": "0.1" } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/data/testclick_0.1_all.click����������������������������������������������������0000664�0000000�0000000�00000001744�14416105132�016147� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!<arch> debian-binary 1412944817 0 0 100644 4 ` 2.0 _click-binary 1412944817 0 0 100644 4 ` 0.4 control.tar.gz 1412944817 0 0 100644 546 ` 7Tcontrol.tar�n09SzȥblU{!R{ٵ�Cmv[k $ݴ|2xf@0qNX0n3SBWd"GIN@o,�^ôCE!\vZHeeԃt^Zo[גW1^0аZ𗰺R nF ] OForp6V >ߥ{_o3?]'Ό?Y>ET8QZ^\Jˌ5sn5s)Yc6�O{?)#(5kķVWAA$ t񥩃W XC d65L*{^O/!o7srb a6Xiº 73{}V ~QH֪'蟷~?ɽ?Pjjsk<)'&,nM;ͷҺ @]+^9<F}vU$w;p-;;>jGQ#     c ;,�(��data.tar.gz 1412944817 0 0 100644 193 ` 7Tdata.tar�ұ0<E.&AB aЄ'4&r-wӉvɼNoS8g6ƸRH+`bK)ާs"WǥvB}ʿN uۍ^o]:؆̲:86ndbNW3�������������~ �(�� ����������������������������apport-2.20.11/test/run�����������������������������������������������������������������������������0000775�0000000�0000000�00000011241�14416106601�011561� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Run Apport self tests. # # Test against the source tree when run in the source tree root. Test against # the system libraries/programs when run from anywhere else. # You can specify test names as arguments to only run a subset of tests. # # Run all tests: test/run # Run tests of one module: test/run crashdb # Run one test in one module: test/run report.test_add_os_info # Copyright (C) 2007 - 2012 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. set -e mydir=`dirname "$0"` export LC_MESSAGES=C # Run against source tree when we are in the source directory if [ -d test -a -e setup.py ]; then echo "Testing local source tree." export PATH=`pwd`/bin:$PATH export PYTHONPATH=`pwd` export APPORT_CRASHDB_CONF=./etc/apport/crashdb.conf export APPORT_DATA_DIR=./data export APPORT_TEST_LOCAL=1 # PEP8 tests, if pep8 is available if PYCODESTYLE=$(which pycodestyle 2>/dev/null || which pep8 2>/dev/null); then echo "Running $(basename $PYCODESTYLE)..." # . catches all *.py modules; we explicitly need to specify the programs $PYCODESTYLE -r --ignore=E401,E402,E501,W503,W504,E124 --exclude=test_problem_report.py,report.py,is-enabled,apport-bug,apport-collect,REThread.py,bin/oem-getlogs . `find bin data gtk kde -type f -executable` # those tests deliberately have trailing whitespace in test files, ignore $PYCODESTYLE -r --ignore=E401,E402,E501,W503,W504,W291,W293 test/test_problem_report.py # has_key is minidom API, not the dict operator here $PYCODESTYLE -r --ignore=E401,E402,E501,W503,W504,W601 apport/report.py # need the bare except to catch the dialog being closed $PYCODESTYLE -r --ignore=E401,E402,E501,W503,W504,E124,E722 apport/REThread.py $PYCODESTYLE -r --ignore=E731 bin/oem-getlogs else echo "Skipping PEP 8 tests, neither pycodestyle nor pep8 are installed" fi # pyflakes3, if available if type pyflakes3 >/dev/null 2>&1; then echo "Running pyflakes3..." pyflakes3 `find -name '*.py'` `find bin data gtk -type f -executable ! -name is-enabled ! -name apport-bug ! -name root_info_wrapper ! -name apport-collect` else echo "Skipping pyflakes3 tests, pyflakes3 is not installed" fi # assert that there are no hardcoded "Ubuntu" names out=$(grep -rw Ubuntu test/*.py apport/*.py gtk/apport-gtk* kde/* bin/* | grep -v Debian | grep -v X-Ubuntu-Gettext-Domain | grep -v '#.*Ubuntu') || : if [ -n "$out" ]; then echo "Found hardcoded 'Ubuntu' names, use DistroRelease: field or lsb_release instead:\n\n$out" >&2 exit 1 fi if [ ! -e apport/packaging_impl.py ]; then echo "You need to copy an appropriate packaging implementation from backends/ to apport/packaging_impl.py; run './setup.py build' for auto-detection." >&2 exit 1 fi else echo "Testing installed libraries/program." fi # avoid breaking the UI tests due to obsolete packages export APPORT_IGNORE_OBSOLETE_PACKAGES=1 # avoid breaking tests due to translated strings or assuming a particular # locale export LC_MESSAGES=C export LC_CTYPE=C unset LANGUAGE LANG # do not assume/disturb session bus unset DBUS_SESSION_BUS_ADDRESS xvfb= if type xvfb-run >/dev/null && [ -z "$APPORT_TEST_NOXVFB" ]; then xvfb=xvfb-run fi failed=0 # check command line whether to only run a subset of tests if [ -z "$1" ]; then TESTS=$(ls $mydir/*.py | cut -f2- -d_ | cut -f1 -d.) else while [ -n "$1" ]; do if [ -e "$mydir/test_${1%%.*}.py" ]; then TESTS="$TESTS $1" else echo "Test $1 does not exist" >&2 exit 1 fi shift done fi for t in $TESTS; do echo "--- Testing $t ---" if [ "${t#ui_}" != $t ]; then while [ -e /tmp/.X99-lock ]; do echo "Waiting for previous xvfb to finish..." sleep 0.5 done prefix="$xvfb dbus-launch" else # ensure that non-UI modules do not require X prefix="env -u DISPLAY" if [ "$t" = "python_crashes" ] || [ "${t#ui_}" != $t ]; then prefix="$prefix dbus-launch" fi fi test_file="$mydir/test_${t%%.*}.py" if [ "$t" = "${t#*.}" ]; then test_name="" else test_name="T.${t#*.}" fi $prefix ${PYTHON:=python3} -tt $test_file -v $test_name || failed=$((failed+1)) done exit $failed ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_apport_unpack.py�����������������������������������������������������������0000664�0000000�0000000�00000010507�14416106601�015312� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Test apport-unpack''' # Copyright (C) 2012 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import unittest, subprocess, tempfile, shutil, os, os.path, sys import problem_report class T(unittest.TestCase): @classmethod def setUpClass(klass): klass.workdir = tempfile.mkdtemp() # create problem report file with all possible data types r = problem_report.ProblemReport() klass.utf8_str = b'a\xe2\x99\xa5b' klass.bindata = b'\x00\x01\xFF\x40' r['utf8'] = klass.utf8_str r['unicode'] = klass.utf8_str.decode('UTF-8') r['binary'] = klass.bindata r['compressed'] = problem_report.CompressedValue(b'FooFoo!') r['separator'] = '' klass.report_file = os.path.join(klass.workdir, 'test.apport') with open(klass.report_file, 'wb') as f: r.write(f) klass.unpack_dir = os.path.join(klass.workdir, 'un pack') @classmethod def tearDownClass(klass): shutil.rmtree(klass.workdir) def tearDown(self): if os.path.isdir(self.unpack_dir): shutil.rmtree(self.unpack_dir) def test_unpack(self): '''apport-unpack for all possible data types''' self.assertEqual(self._call(['apport-unpack', self.report_file, self.unpack_dir]), (0, '', '')) self.assertEqual(self._get_unpack('utf8'), self.utf8_str) self.assertEqual(self._get_unpack('unicode'), self.utf8_str) self.assertEqual(self._get_unpack('binary'), self.bindata) self.assertEqual(self._get_unpack('compressed'), b'FooFoo!') def test_unpack_python(self): '''apport-unpack with explicity Python interpreter This will catch Python 2/3 specific errors when running the tests with a different $PYTHON than apport-unpacks' hashbang. ''' apport_unpack = os.path.join( os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'bin', 'apport-unpack') if not os.path.exists(apport_unpack): apport_unpack = '/usr/bin/apport-unpack' if not os.path.exists(apport_unpack): sys.stderr.write('[skip: apport-unpack not found] ') return self.assertEqual(self._call([os.getenv('PYTHON', 'python3'), apport_unpack, self.report_file, self.unpack_dir]), (0, '', '')) self.assertEqual(self._get_unpack('utf8'), self.utf8_str) self.assertEqual(self._get_unpack('unicode'), self.utf8_str) self.assertEqual(self._get_unpack('binary'), self.bindata) self.assertEqual(self._get_unpack('compressed'), b'FooFoo!') def test_help(self): '''calling apport-unpack with help''' (ret, out, err) = self._call(['apport-unpack', '--help']) self.assertEqual(ret, 0) self.assertEqual(err, '') self.assertTrue(out.startswith('Usage:'), out) def test_error(self): '''calling apport-unpack with wrong arguments''' (ret, out, err) = self._call(['apport-unpack']) self.assertEqual(ret, 1) self.assertEqual(err, '') self.assertTrue(out.startswith('Usage:'), out) (ret, out, err) = self._call(['apport-unpack', self.report_file]) self.assertEqual(ret, 1) self.assertEqual(err, '') self.assertTrue(out.startswith('Usage:'), out) (ret, out, err) = self._call(['apport-unpack', '/nonexisting.crash', self.unpack_dir]) self.assertEqual(ret, 1) self.assertTrue('/nonexisting.crash' in err) self.assertEqual(out, '') def _call(self, argv): a = subprocess.Popen(argv, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = a.communicate() return (a.returncode, out.decode('UTF-8'), err.decode('UTF-8')) def _get_unpack(self, fname): with open(os.path.join(self.unpack_dir, fname), 'rb') as f: return f.read() unittest.main() �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_apport_valgrind.py���������������������������������������������������������0000664�0000000�0000000�00000012316�14416106601�015637� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2012 Canonical Ltd. # Author: Kyle Nitzsche <kyle.nitzsche@canonica.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import unittest import subprocess import tempfile import shutil import os import os.path p = subprocess.Popen(['which', 'valgrind'], stdout=subprocess.PIPE) p.communicate() have_valgrind = (p.returncode == 0) with open('/proc/meminfo') as f: for line in f.readlines(): if line.startswith('MemTotal'): memtotal = int(line.split()[1]) break if memtotal < 2000000: low_memory = True else: low_memory = False @unittest.skipUnless(have_valgrind, 'valgrind not installed') class T(unittest.TestCase): def setUp(self): self.workdir = tempfile.mkdtemp() self.pwd = os.getcwd() def tearDown(self): shutil.rmtree(self.workdir) os.chdir(self.pwd) def test_valgrind_min_installed(self): '''valgrind is installed and recent enough''' cmd = ['valgrind', '-q', '--extra-debuginfo-path=./', 'ls'] (ret, out, err) = self._call(cmd) self.assertEqual(ret, 0) def _call(self, argv): p = subprocess.Popen( argv, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = p.communicate() ret = p.returncode return ret, bytes.decode(out), bytes.decode(err) def test_help_display(self): '''help display''' cmd = ['apport-valgrind', '-h'] (ret, out, err) = self._call(cmd) self.assertEqual(ret, 0) def test_invalid_args(self): '''return code is not 0 when invalid args are passed''' cmd = ['apport-valgrind', '-k', 'pwd'] (ret, out, err) = self._call(cmd) self.assertNotEqual(ret, 0) def test_vlog_created(self): '''apport-valgrind creates valgrind.log with expected content''' cmd = ['apport-valgrind', '--no-sandbox', 'true'] os.chdir(self.workdir) subprocess.call(cmd) self.assertTrue( os.path.exists('valgrind.log'), msg='Expected valgrind.log file not found.') def test_intentional_mem_leak_detection(self): '''apport-valgrind log reports intentional memory leak''' os.chdir(self.workdir) # compile memleak.c to create memleak.o that intentionally creates a # memory leak code = ''' #include <stdio.h> #include <stdlib.h> #include <string.h> void makeleak(void); int main(void) { makeleak(); return 0; } void makeleak(void){ char *leak = malloc(128); strcpy(leak, "Initializing leak value"); /*free(leak);*/ }''' with open('memleak.c', 'w') as fd: fd.write(code) cmd = ['gcc', '-Wall', '-Werror', '-g', 'memleak.c', '-o', 'memleak'] self.assertEqual( subprocess.call(cmd), 0, 'compiling memleak.c failed.') self.assertTrue(os.path.exists('memleak')) # run apport-valgrind on the new memleak.o cmd = ['apport-valgrind', '--no-sandbox', os.path.join(self.workdir, './memleak')] subprocess.call(cmd) logpath = os.path.join(self.workdir, './valgrind.log') # verify the generated valgrind.log contains the known leak cmd = ['grep', 'definitely lost:', logpath] res = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0] res = bytes.decode(res) res = res.rstrip('\n') found = res.find('128 bytes') self.assertGreater(found, 0, 'The intentional memory leak should be reported ' 'in the valgrind log file but is not.') def test_unpackaged_exe(self): '''apport-valgrind creates valgrind log on unpackaged executable''' exepath = os.path.join(self.workdir, 'pwd') shutil.copy('/bin/pwd', exepath) logpath = os.path.join(self.workdir, 'unpackaged-exe.log') subprocess.check_call(['apport-valgrind', '--no-sandbox', '-l', logpath, exepath]) self.assertTrue(os.path.exists(logpath), 'A log file %s should exist but does not' % logpath) with open(logpath) as f: log = f.read() self.assertTrue(exepath in log, log) @unittest.skipIf(low_memory, 'not enough memory') def test_sandbox_cache_options(self): '''apport-valgrind creates a user specified sandbox and cache''' sandbox = os.path.join(self.workdir, 'test-sandbox') cache = os.path.join(self.workdir, 'test-cache') cmd = ['apport-valgrind', '--sandbox-dir', sandbox, '--cache', cache, '/bin/true'] subprocess.check_call(cmd) self.assertTrue(os.path.exists(sandbox), 'A sandbox directory %s was specified but was not created' % sandbox) self.assertTrue(os.path.exists(cache), 'A cache directory %s was specified but was not created' % cache) unittest.main() ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_backend_apt_dpkg.py��������������������������������������������������������0000664�0000000�0000000�00000147006�14416106601�015711� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������import unittest, gzip, subprocess, tempfile, shutil, os, os.path, time import glob, sys from apt import apt_pkg from importlib.machinery import SourceFileLoader try: from urllib import urlopen URLError = IOError (urlopen) # pyflakes except ImportError: # python3 from urllib.request import urlopen from urllib.error import URLError if os.environ.get('APPORT_TEST_LOCAL'): impl = SourceFileLoader('', 'backends/packaging-apt-dpkg.py').load_module().impl else: from apport.packaging_impl import impl def _has_internet(): '''Return if there is sufficient network connection for the tests. This checks if https://api.launchpad.net/devel/ubuntu/ can be downloaded from, to check if we can run the online tests. ''' if os.environ.get('SKIP_ONLINE_TESTS'): return False if _has_internet.cache is None: _has_internet.cache = False try: if sys.version > '3': f = urlopen('https://api.launchpad.net/devel/ubuntu/', timeout=30) else: f = urlopen('https://api.launchpad.net/devel/ubuntu/') if b"web_link" in f.readline(): _has_internet.cache = True except URLError: pass return _has_internet.cache _has_internet.cache = None class T(unittest.TestCase): def setUp(self): # save and restore configuration file self.orig_conf = impl.configuration self.workdir = tempfile.mkdtemp() # reset internal caches between tests impl._apt_cache = None impl._sandbox_apt_cache = None def tearDown(self): impl.configuration = self.orig_conf shutil.rmtree(self.workdir) def test_check_files_md5(self): '''_check_files_md5().''' td = tempfile.mkdtemp() try: f1 = os.path.join(td, 'test 1.txt') f2 = os.path.join(td, 'test:2.txt') sumfile = os.path.join(td, 'sums.txt') with open(f1, 'w') as fd: fd.write('Some stuff') with open(f2, 'w') as fd: fd.write('More stuff') # use one relative and one absolute path in checksums file with open(sumfile, 'wb') as fd: fd.write(b'2e41290da2fa3f68bd3313174467e3b5 ' + f1[1:].encode() + b'\n') fd.write(b'f6423dfbc4faf022e58b4d3f5ff71a70 ' + f2.encode() + b'\n') fd.write(b'deadbeef000001111110000011110000 /bin/\xc3\xa4') self.assertEqual(impl._check_files_md5(sumfile), [], 'correct md5sums') with open(f1, 'w') as fd: fd.write('Some stuff!') self.assertEqual(impl._check_files_md5(sumfile), [f1[1:]], 'file 1 wrong') with open(f2, 'w') as fd: fd.write('More stuff!') self.assertEqual(impl._check_files_md5(sumfile), [f1[1:], f2], 'files 1 and 2 wrong') with open(f1, 'w') as fd: fd.write('Some stuff') self.assertEqual(impl._check_files_md5(sumfile), [f2], 'file 2 wrong') # check using a direct md5 list as argument with open(sumfile, 'rb') as fd: self.assertEqual(impl._check_files_md5(fd.read()), [f2], 'file 2 wrong') finally: shutil.rmtree(td) def test_get_version(self): '''get_version().''' self.assertTrue(impl.get_version('libc6').startswith('2')) self.assertRaises(ValueError, impl.get_version, 'nonexisting') self.assertRaises(ValueError, impl.get_version, 'wukrainian') def test_get_available_version(self): '''get_available_version().''' self.assertTrue(impl.get_available_version('libc6').startswith('2')) self.assertRaises(ValueError, impl.get_available_version, 'nonexisting') def test_get_dependencies(self): '''get_dependencies().''' # package with both Depends: and Pre-Depends: d = impl.get_dependencies('bash') self.assertGreater(len(d), 2) self.assertIn('libc6', d) for dep in d: if dep == "bash-completion": # bash-completion is only in Recommends (maybe not installed) continue self.assertTrue(impl.get_version(dep)) # Pre-Depends: only d = impl.get_dependencies('coreutils') self.assertGreaterEqual(len(d), 1) self.assertIn('libc6', d) for dep in d: self.assertTrue(impl.get_version(dep)) # Depends: only d = impl.get_dependencies('libc-bin') self.assertGreaterEqual(len(d), 1) for dep in d: self.assertTrue(impl.get_version(dep)) def test_get_source(self): '''get_source().''' self.assertRaises(ValueError, impl.get_source, 'nonexisting') self.assertEqual(impl.get_source('bash'), 'bash') self.assertIn('glibc', impl.get_source('libc6')) def test_get_package_origin(self): '''get_package_origin().''' # determine distro name distro = impl.get_os_version()[0] self.assertRaises(ValueError, impl.get_package_origin, 'nonexisting') # this assumes that this package is not installed self.assertRaises(ValueError, impl.get_package_origin, 'robocode-doc') # this assumes that bash is native self.assertEqual(impl.get_package_origin('bash'), distro) # no non-native test here, hard to come up with a generic one def test_is_distro_package(self): '''is_distro_package().''' self.assertRaises(ValueError, impl.is_distro_package, 'nonexisting') self.assertTrue(impl.is_distro_package('bash')) # no False test here, hard to come up with a generic one def test_get_architecture(self): '''get_architecture().''' self.assertRaises(ValueError, impl.get_architecture, 'nonexisting') # just assume that bash uses the native architecture d = subprocess.Popen(['dpkg', '--print-architecture'], stdout=subprocess.PIPE) system_arch = d.communicate()[0].decode().strip() assert d.returncode == 0 self.assertEqual(impl.get_architecture('bash'), system_arch) def test_get_files(self): '''get_files().''' self.assertRaises(ValueError, impl.get_files, 'nonexisting') self.assertIn('/bin/bash', impl.get_files('bash')) def test_get_file_package(self): '''get_file_package() on installed files.''' self.assertEqual(impl.get_file_package('/bin/bash'), 'bash') self.assertEqual(impl.get_file_package('/bin/cat'), 'coreutils') self.assertEqual(impl.get_file_package('/etc/pam.conf'), 'libpam-runtime') self.assertEqual(impl.get_file_package('/nonexisting'), None) def test_get_file_package_uninstalled(self): '''get_file_package() on uninstalled packages.''' # generate a test Contents.gz basedir = tempfile.mkdtemp() try: # test Contents.gz for release pocket mapdir = os.path.join(basedir, 'dists', impl.get_distro_codename()) os.makedirs(mapdir) with gzip.open(os.path.join(mapdir, 'Contents-%s.gz' % impl.get_system_architecture()), 'w') as f: f.write(b'''usr/bin/frobnicate foo/frob usr/bin/frob foo/frob-utils bo/gu/s na/mypackage bin/true admin/superutils ''') # test Contents.gz for -updates pocket mapdir = os.path.join(basedir, 'dists', impl.get_distro_codename() + '-updates') os.makedirs(mapdir) with gzip.open(os.path.join(mapdir, 'Contents-%s.gz' % impl.get_system_architecture()), 'w') as f: f.write(b'''lib/libnew.so.5 universe/libs/libnew5 ''') # use this as a mirror impl.set_mirror('file://' + basedir) self.assertEqual(impl.get_file_package('usr/bin/frob', False), None) # must not match frob (same file name prefix) self.assertEqual(impl.get_file_package('usr/bin/frob', True), 'frob-utils') self.assertEqual(impl.get_file_package('/usr/bin/frob', True), 'frob-utils') # find files from -updates pocket self.assertEqual(impl.get_file_package('/lib/libnew.so.5', False), None) self.assertEqual(impl.get_file_package('/lib/libnew.so.5', True), 'libnew5') # invalid mirror impl.set_mirror('file:///foo/nonexisting') self.assertRaises(IOError, impl.get_file_package, 'usr/bin/frob', True) # valid mirror, test cache directory impl.set_mirror('file://' + basedir) cache_dir = os.path.join(basedir, 'cache') os.mkdir(cache_dir) self.assertEqual(impl.get_file_package('usr/bin/frob', True, cache_dir), 'frob-utils') cache_dir_files = os.listdir(cache_dir) self.assertEqual(len(cache_dir_files), 3) self.assertEqual(impl.get_file_package('/bo/gu/s', True, cache_dir), None) # valid cache, should not need to access the mirror impl.set_mirror('file:///foo/nonexisting') self.assertEqual(impl.get_file_package('/bin/true', True, cache_dir), 'superutils') self.assertEqual(impl.get_file_package('/bo/gu/s', True, cache_dir), None) self.assertEqual(impl.get_file_package('/lib/libnew.so.5', True, cache_dir), 'libnew5') # outdated cache, must refresh the cache and hit the invalid # mirror if 'updates' in cache_dir_files[0]: cache_file = cache_dir_files[1] else: cache_file = cache_dir_files[0] now = int(time.time()) os.utime(os.path.join(cache_dir, cache_file), (now, now - 90000)) finally: shutil.rmtree(basedir) def test_get_file_package_uninstalled_multiarch(self): '''get_file_package() on foreign arches and releases''' # map "Foonux 3.14" to "mocky" orig_distro_release_to_codename = impl._distro_release_to_codename impl._distro_release_to_codename = lambda r: (r == 'Foonux 3.14') and 'mocky' or None # generate test Contents.gz for two fantasy architectures basedir = tempfile.mkdtemp() try: mapdir = os.path.join(basedir, 'dists', impl.get_distro_codename()) os.makedirs(mapdir) with gzip.open(os.path.join(mapdir, 'Contents-even.gz'), 'w') as f: f.write(b'''usr/lib/even/libfrob.so.1 foo/libfrob1 usr/bin/frob foo/frob-utils ''') with gzip.open(os.path.join(mapdir, 'Contents-odd.gz'), 'w') as f: f.write(b'''usr/lib/odd/libfrob.so.1 foo/libfrob1 usr/bin/frob foo/frob-utils ''') # and another one for fantasy release os.mkdir(os.path.join(basedir, 'dists', 'mocky')) with gzip.open(os.path.join(basedir, 'dists', 'mocky', 'Contents-even.gz'), 'w') as f: f.write(b'''usr/lib/even/libfrob.so.0 foo/libfrob0 usr/bin/frob foo/frob ''') # use this as a mirror impl.set_mirror('file://' + basedir) # must not match system architecture self.assertEqual(impl.get_file_package('usr/bin/frob', False), None) # must match correct architecture self.assertEqual(impl.get_file_package('usr/bin/frob', True, arch='even'), 'frob-utils') self.assertEqual(impl.get_file_package('usr/bin/frob', True, arch='odd'), 'frob-utils') self.assertEqual(impl.get_file_package('/usr/lib/even/libfrob.so.1', True, arch='even'), 'libfrob1') self.assertEqual(impl.get_file_package('/usr/lib/even/libfrob.so.1', True, arch='odd'), None) self.assertEqual(impl.get_file_package('/usr/lib/odd/libfrob.so.1', True, arch='odd'), 'libfrob1') # for mocky release ("Foonux 3.14") self.assertEqual(impl.get_file_package('/usr/lib/even/libfrob.so.1', True, release='Foonux 3.14', arch='even'), None) self.assertEqual(impl.get_file_package('/usr/lib/even/libfrob.so.0', True, release='Foonux 3.14', arch='even'), 'libfrob0') self.assertEqual(impl.get_file_package('/usr/bin/frob', True, release='Foonux 3.14', arch='even'), 'frob') # invalid mirror impl.set_mirror('file:///foo/nonexisting') self.assertRaises(IOError, impl.get_file_package, '/usr/lib/even/libfrob.so.1', True, arch='even') self.assertRaises(IOError, impl.get_file_package, '/usr/lib/even/libfrob.so.0', True, release='Foonux 3.14', arch='even') # valid mirror, test caching impl.set_mirror('file://' + basedir) cache_dir = os.path.join(basedir, 'cache') os.mkdir(cache_dir) self.assertEqual(impl.get_file_package('/usr/lib/even/libfrob.so.1', True, cache_dir, arch='even'), 'libfrob1') self.assertEqual(len(os.listdir(cache_dir)), 2) self.assertEqual(impl.get_file_package('/usr/lib/even/libfrob.so.0', True, cache_dir, release='Foonux 3.14', arch='even'), 'libfrob0') self.assertEqual(len(os.listdir(cache_dir)), 4) # valid cache, should not need to access the mirror impl.set_mirror('file:///foo/nonexisting') self.assertEqual(impl.get_file_package('usr/bin/frob', True, cache_dir, arch='even'), 'frob-utils') self.assertEqual(impl.get_file_package('usr/bin/frob', True, cache_dir, release='Foonux 3.14', arch='even'), 'frob') # but no cached file for the other arch self.assertRaises(IOError, impl.get_file_package, 'usr/bin/frob', True, cache_dir, arch='odd') # outdated cache, must refresh the cache and hit the invalid # mirror now = int(time.time()) for cache_file in os.listdir(cache_dir): os.utime(os.path.join(cache_dir, cache_file), (now, now - 90000)) self.assertRaises(IOError, impl.get_file_package, 'usr/bin/frob', True, cache_dir, arch='even') finally: shutil.rmtree(basedir) impl._distro_release_to_codename = orig_distro_release_to_codename def test_get_file_package_diversion(self): '''get_file_package() for a diverted file.''' # pick first diversion we have p = subprocess.Popen('LC_ALL=C dpkg-divert --list | head -n 1', shell=True, stdout=subprocess.PIPE) out = p.communicate()[0].decode('UTF-8') assert p.returncode == 0 assert out fields = out.split() file = fields[2] pkg = fields[-1] self.assertEqual(impl.get_file_package(file), pkg) def test_mirror_from_apt_sources(self): s = os.path.join(self.workdir, 'sources.list') # valid file, should grab the first mirror with open(s, 'w') as f: f.write('''# some comment deb-src http://source.mirror/foo tuxy main deb http://binary.mirror/tuxy tuxy main deb http://secondary.mirror tuxy extra ''') f.flush() self.assertEqual(impl._get_primary_mirror_from_apt_sources(s), 'http://binary.mirror/tuxy') # valid file with options with open(s, 'w') as f: f.write('''# some comment deb-src http://source.mirror/foo tuxy main deb [arch=flowerpc,leghf] http://binary.mirror/tuxy tuxy main deb http://secondary.mirror tuxy extra ''') f.flush() self.assertEqual(impl._get_primary_mirror_from_apt_sources(s), 'http://binary.mirror/tuxy') # empty file with open(s, 'w') as f: f.flush() self.assertRaises(SystemError, impl._get_primary_mirror_from_apt_sources, s) def test_get_modified_conffiles(self): '''get_modified_conffiles()''' # very shallow self.assertEqual(type(impl.get_modified_conffiles('bash')), type({})) self.assertEqual(type(impl.get_modified_conffiles('apport')), type({})) self.assertEqual(type(impl.get_modified_conffiles('nonexisting')), type({})) def test_get_system_architecture(self): '''get_system_architecture().''' arch = impl.get_system_architecture() # must be nonempty without line breaks self.assertNotEqual(arch, '') self.assertNotIn('\n', arch) def test_get_library_paths(self): '''get_library_paths().''' paths = impl.get_library_paths() # must be nonempty without line breaks self.assertNotEqual(paths, '') self.assertIn(':', paths) self.assertIn('/lib', paths) self.assertNotIn('\n', paths) def test_compare_versions(self): '''compare_versions.''' self.assertEqual(impl.compare_versions('1', '2'), -1) self.assertEqual(impl.compare_versions('1.0-1ubuntu1', '1.0-1ubuntu2'), -1) self.assertEqual(impl.compare_versions('1.0-1ubuntu1', '1.0-1ubuntu1'), 0) self.assertEqual(impl.compare_versions('1.0-1ubuntu2', '1.0-1ubuntu1'), 1) self.assertEqual(impl.compare_versions('1:1.0-1', '2007-2'), 1) self.assertEqual(impl.compare_versions('1:1.0-1~1', '1:1.0-1'), -1) def test_enabled(self): '''enabled.''' impl.configuration = '/nonexisting' self.assertEqual(impl.enabled(), True) f = tempfile.NamedTemporaryFile() impl.configuration = f.name f.write('# configuration file\nenabled = 1'.encode()) f.flush() self.assertEqual(impl.enabled(), True) f.close() f = tempfile.NamedTemporaryFile() impl.configuration = f.name f.write('# configuration file\n enabled =0 '.encode()) f.flush() self.assertEqual(impl.enabled(), False) f.close() f = tempfile.NamedTemporaryFile() impl.configuration = f.name f.write('# configuration file\nnothing here'.encode()) f.flush() self.assertEqual(impl.enabled(), True) f.close() def test_get_kernel_package(self): '''get_kernel_package().''' self.assertIn('linux', impl.get_kernel_package()) def test_package_name_glob(self): '''package_name_glob().''' self.assertGreater(len(impl.package_name_glob('a*')), 5) self.assertIn('bash', impl.package_name_glob('ba*h')) self.assertEqual(impl.package_name_glob('bash'), ['bash']) self.assertEqual(impl.package_name_glob('xzywef*'), []) @unittest.skipUnless(_has_internet(), 'online test') def test_install_packages_versioned(self): '''install_packages() with versions and with cache''' self._setup_foonux_config(release='xenial', updates=True) v_coreutils = '8.25-2ubuntu2' v_libc = '2.23-0ubuntu3' obsolete = impl.install_packages(self.rootdir, self.configdir, 'Foonux 16.04', [('coreutils', v_coreutils), # should not come from updates ('libc6', v_libc), ('tzdata', None), # should come from -updates, > 2014b-1 ], False, self.cachedir) def sandbox_ver(pkg): with gzip.open(os.path.join(self.rootdir, 'usr/share/doc', pkg, 'changelog.Debian.gz')) as f: return f.readline().decode().split()[1][1:-1] self.assertEqual(obsolete, '') # packages get installed self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/bin/stat'))) self.assert_elf_arch(os.path.join(self.rootdir, 'usr/bin/stat'), impl.get_system_architecture()) self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/lib/debug/.build-id'))) self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/share/zoneinfo/zone.tab'))) self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/share/doc/libc6/copyright'))) # their versions are as expected self.assertEqual(sandbox_ver('coreutils'), v_coreutils) self.assertEqual(sandbox_ver('libc6'), v_libc) self.assertEqual(sandbox_ver('libc6-dbg'), v_libc) self.assertGreater(sandbox_ver('tzdata'), '2016') with open(os.path.join(self.rootdir, 'packages.txt')) as f: pkglist = f.read().splitlines() self.assertIn('coreutils ' + v_coreutils, pkglist) self.assertIn('coreutils-dbgsym ' + v_coreutils, pkglist) self.assertIn('libc6 ' + v_libc, pkglist) self.assertIn('libc6-dbg ' + v_libc, pkglist) self.assertIn('tzdata ' + sandbox_ver('tzdata'), pkglist) self.assertEqual(len(pkglist), 5, str(pkglist)) # does not clobber config dir self.assertEqual(os.listdir(self.configdir), ['Foonux 16.04']) self.assertEqual(sorted(os.listdir(os.path.join(self.configdir, 'Foonux 16.04'))), ['armhf', 'codename', 'sources.list', 'trusted.gpg.d']) self.assertEqual(sorted(os.listdir(os.path.join(self.configdir, 'Foonux 16.04', 'armhf'))), ['sources.list', 'trusted.gpg.d']) # caches packages, and their versions are as expected cache = os.listdir(os.path.join(self.cachedir, 'Foonux 16.04', 'apt', 'var', 'cache', 'apt', 'archives')) cache_versions = {} for p in cache: try: (name, ver) = p.split('_')[:2] cache_versions[name] = ver except ValueError: pass # not a .deb, ignore self.assertEqual(cache_versions['coreutils'], v_coreutils) self.assertEqual(cache_versions['coreutils-dbgsym'], v_coreutils) self.assertIn('tzdata', cache_versions) self.assertEqual(cache_versions['libc6'], v_libc) self.assertEqual(cache_versions['libc6-dbg'], v_libc) # installs cached packages os.unlink(os.path.join(self.rootdir, 'usr/bin/stat')) os.unlink(os.path.join(self.rootdir, 'packages.txt')) obsolete = impl.install_packages(self.rootdir, self.configdir, 'Foonux 16.04', [('coreutils', v_coreutils), ], False, self.cachedir) self.assertEqual(obsolete, '') self.assertTrue(os.path.exists( os.path.join(self.rootdir, 'usr/bin/stat'))) # complains about obsolete packages result = impl.install_packages(self.rootdir, self.configdir, 'Foonux 16.04', [('aspell-doc', '1.1')]) self.assertIn('aspell-doc version 1.1 required, but 0.60.7~20110707-3', result) # ... but installs the current version anyway self.assertTrue(os.path.exists( os.path.join(self.rootdir, 'usr/share/info/aspell.info.gz'))) self.assertGreaterEqual(sandbox_ver('aspell-doc'), '0.60.7~2011') # does not crash on nonexisting packages result = impl.install_packages(self.rootdir, self.configdir, 'Foonux 16.04', [('buggerbogger', None)]) self.assertEqual(len(result.splitlines()), 1) self.assertIn('buggerbogger', result) self.assertIn('not exist', result) # can interleave with other operations dpkg = subprocess.Popen(['dpkg-query', '-Wf${Version}', 'dash'], stdout=subprocess.PIPE) dash_version = dpkg.communicate()[0].decode() self.assertEqual(dpkg.returncode, 0) self.assertEqual(impl.get_version('dash'), dash_version) self.assertRaises(ValueError, impl.get_available_version, 'buggerbogger') # still installs packages after above operations os.unlink(os.path.join(self.rootdir, 'usr/bin/stat')) os.unlink(os.path.join(self.rootdir, 'packages.txt')) impl.install_packages(self.rootdir, self.configdir, 'Foonux 16.04', [('coreutils', v_coreutils), ('dpkg', None), ], False, self.cachedir) self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/bin/stat'))) self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/bin/dpkg'))) @unittest.skipUnless(_has_internet(), 'online test') def test_install_packages_unversioned(self): '''install_packages() without versions and no cache''' self._setup_foonux_config(release='xenial') obsolete = impl.install_packages(self.rootdir, self.configdir, 'Foonux 16.04', [('coreutils', None), ('tzdata', None), ], False, None) self.assertEqual(obsolete, '') self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/bin/stat'))) self.assert_elf_arch(os.path.join(self.rootdir, 'usr/bin/stat'), impl.get_system_architecture()) self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/lib/debug/.build-id'))) self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/share/zoneinfo/zone.tab'))) # does not clobber config dir self.assertEqual(os.listdir(self.configdir), ['Foonux 16.04']) self.assertEqual(sorted(os.listdir(os.path.join(self.configdir, 'Foonux 16.04'))), ['armhf', 'codename', 'sources.list', 'trusted.gpg.d']) self.assertEqual(sorted(os.listdir(os.path.join(self.configdir, 'Foonux 16.04', 'armhf'))), ['sources.list', 'trusted.gpg.d']) # no cache self.assertEqual(os.listdir(self.cachedir), []) # keeps track of package versions with open(os.path.join(self.rootdir, 'packages.txt')) as f: pkglist = f.read().splitlines() self.assertIn('coreutils 8.25-2ubuntu2', pkglist) self.assertIn('coreutils-dbgsym 8.25-2ubuntu2', pkglist) self.assertIn('tzdata 2016d-0ubuntu0.16.04', pkglist) self.assertEqual(len(pkglist), 3, str(pkglist)) @unittest.skipUnless(_has_internet(), 'online test') def test_install_packages_dependencies(self): '''install packages's dependencies''' self._setup_foonux_config(release='xenial') # coreutils should always depend on libc6 result = impl.install_packages(self.rootdir, self.configdir, 'Foonux 16.04', [('coreutils', None)], False, None, install_deps=True) # check packages.txt for a dependency with open(os.path.join(self.rootdir, 'packages.txt')) as f: pkglist = f.read().splitlines() self.assertIn('coreutils 8.25-2ubuntu2', pkglist) self.assertIn('libc6 2.23-0ubuntu3', pkglist) # ensure obsolete packages doesn't include libc6 self.assertNotIn('libc6', result) @unittest.skipUnless(_has_internet(), 'online test') def test_install_packages_system(self): '''install_packages() with system configuration''' # trigger an unrelated package query here to get the cache set up, # reproducing an install failure when the internal caches are not # reset properly impl.get_version('dash') self._setup_foonux_config(impl.get_distro_codename()) lsb_release = subprocess.Popen(['lsb_release', '-sr'], stdout=subprocess.PIPE) system_version = lsb_release.communicate()[0].decode('UTF-8').strip() result = impl.install_packages(self.rootdir, None, system_version, [('coreutils', impl.get_version('coreutils')), ('tzdata', '1.1'), ], False, self.cachedir) self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/bin/stat'))) self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/share/zoneinfo/zone.tab'))) # complains about obsolete packages self.assertGreaterEqual(len(result.splitlines()), 1) self.assertIn('tzdata', result) self.assertIn('1.1', result) # caches packages cache = os.listdir(os.path.join(self.cachedir, 'system', 'apt', 'var', 'cache', 'apt', 'archives')) cache_names = [p.split('_')[0] for p in cache] self.assertIn('coreutils', cache_names) self.assertIn('coreutils-dbgsym', cache_names) self.assertIn('tzdata', cache_names) # works with relative paths and existing cache os.unlink(os.path.join(self.rootdir, 'usr/bin/stat')) os.unlink(os.path.join(self.rootdir, 'packages.txt')) orig_cwd = os.getcwd() try: os.chdir(self.workdir) impl.install_packages('root', None, None, [('coreutils', None)], False, 'cache') finally: os.chdir(orig_cwd) self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/bin/stat'))) @unittest.skipUnless(_has_internet(), 'online test') def test_install_packages_error(self): '''install_packages() with errors''' # sources.list with invalid format self._setup_foonux_config() with open(os.path.join(self.configdir, 'Foonux 14.04', 'sources.list'), 'w') as f: f.write('bogus format') try: impl.install_packages(self.rootdir, self.configdir, 'Foonux 14.04', [('tzdata', None)], False, self.cachedir) self.fail('install_packages() unexpectedly succeeded with broken sources.list') except SystemError as e: self.assertIn('bogus', str(e)) self.assertNotIn('Exception', str(e)) # sources.list with wrong server with open(os.path.join(self.configdir, 'Foonux 14.04', 'sources.list'), 'w') as f: f.write('deb http://archive.ubuntu.com/nosuchdistro/ trusty main\n') try: impl.install_packages(self.rootdir, self.configdir, 'Foonux 14.04', [('tzdata', None)], False, self.cachedir) self.fail('install_packages() unexpectedly succeeded with broken server URL') except SystemError as e: self.assertIn('nosuchdistro', str(e)) try: self.assertRegex(str(e), ".*'http://archive.ubuntu.com/nosuchdistro trusty.*' does not have a Release file") except AssertionError: self.assertIn('index files failed to download', str(e)) @unittest.skipUnless(_has_internet(), 'online test') def test_install_packages_permanent_sandbox(self): '''install_packages() with a permanent sandbox''' release = self._setup_foonux_config(release='jammy') zonetab = os.path.join(self.rootdir, 'usr/share/zoneinfo/zone.tab') impl.install_packages(self.rootdir, self.configdir, release, [('tzdata', None)], False, self.cachedir, permanent_rootdir=True) # This will now be using a Cache with our rootdir. archives = apt_pkg.config.find_dir('Dir::Cache::archives') tzdata = glob.glob(os.path.join(archives, 'tzdata*.deb')) if not tzdata: self.fail('tzdata was not downloaded') tzdata_written = os.path.getctime(tzdata[0]) zonetab_written = os.path.getctime(zonetab) impl.install_packages(self.rootdir, self.configdir, release, [('coreutils', None), ('tzdata', None)], False, self.cachedir, permanent_rootdir=True) if not glob.glob(os.path.join(archives, 'coreutils*.deb')): self.fail('coreutils was not downloaded.') self.assertEqual(os.path.getctime(tzdata[0]), tzdata_written, 'tzdata downloaded twice.') self.assertEqual(zonetab_written, os.path.getctime(zonetab), 'zonetab written twice.') self.assertTrue(os.path.exists( os.path.join(self.rootdir, 'usr/bin/stat'))) # Prevent packages from downloading. orig_apt_proxy = apt_pkg.config.get('Acquire::http::Proxy') apt_pkg.config.set('Acquire::http::Proxy', 'http://nonexistent') orig_http_proxy = os.environ.get('http_proxy') os.environ['http_proxy'] = 'http://nonexistent' try: orig_no_proxy = os.environ['no_proxy'] del os.environ['no_proxy'] except KeyError: orig_no_proxy = None self.assertRaises(SystemExit, impl.install_packages, self.rootdir, self.configdir, release, [('libc6', None)], False, self.cachedir, permanent_rootdir=True) # These packages exist, so attempting to install them should not fail. impl.install_packages(self.rootdir, self.configdir, release, [('coreutils', None), ('tzdata', None)], False, self.cachedir, permanent_rootdir=True) # even without cached debs, trying to install the same versions should # be a no-op and succeed for f in glob.glob(f'{self.cachedir}/{release}/apt/var/cache/apt/archives/coreutils*'): os.unlink(f) impl.install_packages(self.rootdir, self.configdir, release, [('coreutils', None)], False, self.cachedir, permanent_rootdir=True) # trying to install another package should fail, though self.assertRaises(SystemExit, impl.install_packages, self.rootdir, self.configdir, release, [('aspell-doc', None)], False, self.cachedir, permanent_rootdir=True) # restore original proxy settings if orig_http_proxy: os.environ['http_proxy'] = orig_http_proxy else: del os.environ['http_proxy'] if orig_no_proxy: os.environ['no_proxy'] = orig_no_proxy apt_pkg.config.set('Acquire::http::Proxy', orig_apt_proxy) @unittest.skipUnless(_has_internet(), 'online test') def test_install_packages_permanent_sandbox_repack(self): # Both packages needs to conflict with each other, because they # ship the same file. release = self._setup_foonux_config(release='jammy') impl.install_packages(self.rootdir, self.configdir, release, [("libcurl4-gnutls-dev", None)], False, self.cachedir, permanent_rootdir=True) curl_library = self._get_library_path("libcurl.so", self.rootdir) self.assertEqual("libcurl-gnutls.so", os.readlink(curl_library)) impl.install_packages(self.rootdir, self.configdir, release, [("libcurl4-nss-dev", None)], False, self.cachedir, permanent_rootdir=True) self.assertEqual("libcurl-nss.so", os.readlink(curl_library)) impl.install_packages(self.rootdir, self.configdir, release, [("libcurl4-gnutls-dev", None)], False, self.cachedir, permanent_rootdir=True) self.assertEqual("libcurl-gnutls.so", os.readlink(curl_library)) @unittest.skipUnless(_has_internet(), 'online test') @unittest.skipIf(impl.get_system_architecture() == 'armhf', 'native armhf architecture') def test_install_packages_armhf(self): '''install_packages() for foreign architecture armhf''' self._setup_foonux_config(release='xenial') obsolete = impl.install_packages(self.rootdir, self.configdir, 'Foonux 16.04', [('coreutils', None), ('libc6', '2.23-0ubuntu0'), ], False, self.cachedir, architecture='armhf') self.assertEqual(obsolete, 'libc6 version 2.23-0ubuntu0 required, but 2.23-0ubuntu3 is available\n') self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/bin/stat'))) self.assert_elf_arch(os.path.join(self.rootdir, 'usr/bin/stat'), 'armhf') self.assertTrue(os.path.exists(os.path.join(self.rootdir, 'usr/share/doc/libc6/copyright'))) # caches packages cache = os.listdir(os.path.join(self.cachedir, 'Foonux 16.04', 'armhf', 'apt', 'var', 'cache', 'apt', 'archives')) self.assertIn('coreutils_8.25-2ubuntu2_armhf.deb', cache) self.assertIn('libc6_2.23-0ubuntu3_armhf.deb', cache) @unittest.skipUnless(_has_internet(), 'online test') def test_install_old_packages(self): '''sandbox will install older package versions from launchpad''' release = self._setup_foonux_config(release='jammy') wanted_package = "libcurl4" wanted_version = "7.81.0-1" # pre-release version obsolete = impl.install_packages(self.rootdir, self.configdir, release, [(wanted_package, wanted_version)], False, self.cachedir) self.assertEqual(obsolete, '') def sandbox_ver(pkg): with gzip.open(os.path.join(self.rootdir, 'usr/share/doc', pkg, 'changelog.Debian.gz')) as f: return f.readline().decode().split()[1][1:-1] # the version is as expected self.assertEqual(sandbox_ver(wanted_package), wanted_version) # keeps track of package version with open(os.path.join(self.rootdir, 'packages.txt')) as f: pkglist = f.read().splitlines() self.assertIn(f"{wanted_package} {wanted_version}", pkglist) wanted_version = "7.74.0-1.3ubuntu3" obsolete = impl.install_packages(self.rootdir, self.configdir, release, [(wanted_package, wanted_version)], False, self.cachedir) self.assertEqual(obsolete, '') # the old version is installed self.assertEqual(sandbox_ver(wanted_package), wanted_version) # the old versions is tracked with open(os.path.join(self.rootdir, 'packages.txt')) as f: pkglist = f.read().splitlines() self.assertIn(f"{wanted_package} {wanted_version}", pkglist) @unittest.skipUnless(_has_internet(), 'online test') def test_get_source_tree_sandbox(self): self._setup_foonux_config() out_dir = os.path.join(self.workdir, 'out') os.mkdir(out_dir) impl._build_apt_sandbox(self.rootdir, os.path.join(self.configdir, 'Foonux 14.04', 'sources.list'), 'ubuntu', 'trusty', origins=None) res = impl.get_source_tree('base-files', out_dir, sandbox=self.rootdir, apt_update=True) self.assertTrue(os.path.isdir(os.path.join(res, 'debian'))) # this needs to be updated when the release in _setup_foonux_config # changes self.assertTrue(res.endswith('/base-files-7.2ubuntu5'), 'unexpected version: ' + res.split('/')[-1]) @unittest.skipUnless(_has_internet(), 'online test') def test_get_source_tree_lp_sandbox(self): self._setup_foonux_config() out_dir = os.path.join(self.workdir, 'out') os.mkdir(out_dir) impl._build_apt_sandbox(self.rootdir, os.path.join(self.configdir, 'Foonux 14.04', 'sources.list'), 'ubuntu', 'trusty', origins=None) res = impl.get_source_tree('debian-installer', out_dir, version='20101020ubuntu318.16', sandbox=self.rootdir, apt_update=True) self.assertTrue(os.path.isdir(os.path.join(res, 'debian'))) # this needs to be updated when the release in _setup_foonux_config # changes self.assertTrue(res.endswith('/debian-installer-20101020ubuntu318.16'), 'unexpected version: ' + res.split('/')[-1]) @unittest.skipUnless(_has_internet(), 'online test') def test_create_sources_for_a_named_ppa(self): '''Add sources.list entries for a named PPA.''' ppa = 'LP-PPA-daisy-pluckers-daisy-seeds' self._setup_foonux_config() impl._build_apt_sandbox(self.rootdir, os.path.join(self.configdir, 'Foonux 14.04', 'sources.list'), 'ubuntu', 'trusty', origins=[ppa]) with open(os.path.join(self.rootdir, 'etc', 'apt', 'sources.list.d', ppa + '.list')) as f: sources = f.read().splitlines() self.assertIn('deb http://ppa.launchpad.net/daisy-pluckers/daisy-seeds/ubuntu trusty main main/debug', sources) self.assertIn('deb-src http://ppa.launchpad.net/daisy-pluckers/daisy-seeds/ubuntu trusty main', sources) d = subprocess.Popen(['gpg', '--no-options', '--no-default-keyring', '--no-auto-check-trustdb', '--trust-model', 'always', '--batch', '--list-keys', '--keyring', os.path.join(self.rootdir, 'etc', 'apt', 'trusted.gpg.d', 'LP-PPA-daisy-pluckers-daisy-seeds.gpg')], stdout=subprocess.PIPE) apt_keys = d.communicate()[0].decode() assert d.returncode == 0 self.assertIn('Launchpad PPA for Daisy Pluckers', apt_keys) @unittest.skipUnless(_has_internet(), 'online test') def test_create_sources_for_an_unnamed_ppa(self): '''Add sources.list entries for an unnamed PPA.''' ppa = 'LP-PPA-brian-murray' self._setup_foonux_config() impl._build_apt_sandbox(self.rootdir, os.path.join(self.configdir, 'Foonux 14.04', 'sources.list'), 'ubuntu', 'trusty', origins=[ppa]) with open(os.path.join(self.rootdir, 'etc', 'apt', 'sources.list.d', ppa + '.list')) as f: sources = f.read().splitlines() self.assertIn('deb http://ppa.launchpad.net/brian-murray/ppa/ubuntu trusty main', sources) self.assertIn('deb-src http://ppa.launchpad.net/brian-murray/ppa/ubuntu trusty main', sources) d = subprocess.Popen(['gpg', '--no-options', '--no-default-keyring', '--no-auto-check-trustdb', '--trust-model', 'always', '--batch', '--list-keys', '--keyring', os.path.join(self.rootdir, 'etc', 'apt', 'trusted.gpg.d', 'LP-PPA-brian-murray.gpg')], stdout=subprocess.PIPE) apt_keys = d.communicate()[0].decode() assert d.returncode == 0 self.assertIn('Launchpad PPA for Brian Murray', apt_keys) def test_use_sources_for_a_ppa(self): '''Use a sources.list.d file for a PPA.''' ppa = 'fooser-bar-ppa' self._setup_foonux_config(ppa=True) impl._build_apt_sandbox(self.rootdir, os.path.join(self.configdir, 'Foonux 14.04', 'sources.list'), 'ubuntu', 'trusty', origins=['LP-PPA-%s' % ppa]) with open(os.path.join(self.rootdir, 'etc', 'apt', 'sources.list.d', ppa + '.list')) as f: sources = f.read().splitlines() self.assertIn('deb http://ppa.launchpad.net/fooser/bar-ppa/ubuntu trusty main main/debug', sources) self.assertIn('deb-src http://ppa.launchpad.net/fooser/bar-ppa/ubuntu trusty main', sources) @unittest.skipUnless(_has_internet(), 'online test') def test_install_package_from_a_ppa(self): '''Install a package from a PPA.''' ppa = 'LP-PPA-brian-murray' self._setup_foonux_config(release='xenial') obsolete = impl.install_packages(self.rootdir, self.configdir, 'Foonux 16.04', [('apport', '2.20.1-0ubuntu2.22~ppa1') ], False, self.cachedir, origins=[ppa]) self.assertEqual(obsolete, '') def sandbox_ver(pkg): with gzip.open(os.path.join(self.rootdir, 'usr/share/doc', pkg, 'changelog.Debian.gz')) as f: return f.readline().decode().split()[1][1:-1] self.assertEqual(sandbox_ver('apport'), '2.20.1-0ubuntu2.22~ppa1') def _get_library_path(self, library_name: str, root_dir: str = "/") -> str: """Find library path regardless of the architecture.""" libraries = glob.glob( os.path.join(root_dir, "usr/lib/*", library_name) ) self.assertEqual( len(libraries), 1, f"glob for {library_name}: {libraries!r}" ) return libraries[0] def _ubuntu_archive_uri(self, arch=None): """Return archive URI for the given architecture.""" if arch is None: arch = impl.get_system_architecture() if arch in ("amd64", "i386"): return "http://archive.ubuntu.com/ubuntu" return "http://ports.ubuntu.com/ubuntu-ports" def _setup_foonux_config(self, updates=False, release='trusty', ppa=False): '''Set up directories and configuration for install_packages() If ppa is True, then a sources.list file for a PPA will be created in sources.list.d used to test copying of a sources.list file to a sandbox. ''' versions = {'trusty': '14.04', 'xenial': '16.04', 'boinic': '18.04', 'cosmic': '18.10', 'jammy': '22.04'} vers = versions[release] self.cachedir = os.path.join(self.workdir, 'cache') self.rootdir = os.path.join(self.workdir, 'root') self.configdir = os.path.join(self.workdir, 'config') os.mkdir(self.cachedir) os.mkdir(self.rootdir) os.mkdir(self.configdir) os.mkdir(os.path.join(self.configdir, 'Foonux %s' % vers)) self._write_source_file( os.path.join(self.configdir, 'Foonux %s' % vers, 'sources.list'), self._ubuntu_archive_uri(), release, updates, ) if ppa: os.mkdir(os.path.join(self.configdir, 'Foonux %s' % vers, 'sources.list.d')) with open(os.path.join(self.configdir, 'Foonux %s' % vers, 'sources.list.d', 'fooser-bar-ppa.list'), 'w') as f: f.write( f'deb http://ppa.launchpad.net/fooser/bar-ppa/ubuntu {release} main main/debug\n' f'deb-src http://ppa.launchpad.net/fooser/bar-ppa/ubuntu {release} main\n' ) os.mkdir(os.path.join(self.configdir, 'Foonux %s' % vers, 'armhf')) self._write_source_file( os.path.join(self.configdir, 'Foonux %s' % vers, 'armhf', 'sources.list'), self._ubuntu_archive_uri("armhf"), release, updates, ) with open(os.path.join(self.configdir, 'Foonux %s' % vers, 'codename'), 'w') as f: f.write('%s' % release) # install GPG key for ddebs keyring_dir = os.path.join(self.configdir, 'Foonux %s' % vers, 'trusted.gpg.d') os.makedirs(keyring_dir, exist_ok=True) shutil.copy('/usr/share/keyrings/ubuntu-archive-keyring.gpg', keyring_dir) subprocess.check_call(['apt-key', '--keyring', os.path.join(keyring_dir, 'ddebs.ubuntu.com.gpg'), 'adv', '--quiet', '--keyserver', 'keyserver.ubuntu.com', '--recv-key', 'C8CAB6595FDFF622'], stdout=subprocess.DEVNULL) # Create an architecture specific symlink, otherwise it cannot be # found for armhf in __AptDpkgPackageInfo._build_apt_sandbox() as # that looks for trusted.gpg.d relative to sources.list. keyring_arch_dir = os.path.join(self.configdir, 'Foonux %s' % vers, 'armhf', 'trusted.gpg.d') os.symlink("../trusted.gpg.d", keyring_arch_dir) return f'Foonux {vers}' def _write_source_file(self, sources_filename: str, uri: str, release: str, updates: bool) -> None: '''Write sources.list file.''' with open(sources_filename, 'w') as sources_file: sources_file.write( f'deb {uri} {release} main\n' f'deb-src {uri} {release} main\n' f'deb http://ddebs.ubuntu.com/ {release} main\n' ) if updates: sources_file.write( f'deb {uri} {release}-updates main\n' f'deb-src {uri} {release}-updates main\n' f'deb http://ddebs.ubuntu.com/ {release}-updates main\n' ) def assert_elf_arch(self, path, expected): '''Assert that an ELF file is for an expected machine type. Expected is a Debian-style architecture (i386, amd64, armhf) ''' archmap = { "amd64": "X86-64", "arm64": "AArch64", "armhf": "ARM", "i386": "80386", "ppc64el": "PowerPC64", "s390x": "IBM S/390", } # get ELF machine type readelf = subprocess.Popen(['readelf', '-e', path], env={}, stdout=subprocess.PIPE, universal_newlines=True) out = readelf.communicate()[0] assert readelf.returncode == 0 for line in out.splitlines(): if line.startswith(' Machine:'): machine = line.split(None, 1)[1] break else: self.fail('could not find Machine: in readelf output') self.assertTrue(archmap[expected] in machine, '%s has unexpected machine type "%s" for architecture %s' % ( path, machine, expected)) # only execute if dpkg is available try: if subprocess.call(['dpkg', '--help'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) == 0: unittest.main() except OSError: pass ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_crash_digger.py������������������������������������������������������������0000664�0000000�0000000�00000022310�14416105132�015056� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Test crash-digger''' # Copyright (C) 2007 - 2009 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import unittest, subprocess, tempfile, os, shutil, os.path import apport.fileutils class T(unittest.TestCase): def setUp(self): '''Set up dummy config dir, crashdb.conf, and apport-retrace''' self.workdir = tempfile.mkdtemp() crashdb_conf = os.path.join(self.workdir, 'crashdb.conf') with open(crashdb_conf, 'w') as f: f.write('''default = 'memory' databases = { 'memory': {'impl': 'memory', 'distro': 'Testux', 'dummy_data': '1', 'dupdb_url': '%s'}, 'empty': {'impl': 'memory', 'distro': 'Foonux'}, }''' % os.path.join(self.workdir, 'dupdb')) self.config_dir = os.path.join(self.workdir, 'config') os.mkdir(self.config_dir) os.mkdir(os.path.join(self.config_dir, 'Testux 1.0')) os.mkdir(os.path.join(self.config_dir, 'Testux 2.2')) self.apport_retrace_log = os.path.join(self.workdir, 'apport-retrace.log') self.apport_retrace = os.path.join(self.workdir, 'apport-retrace') with open(self.apport_retrace, 'w') as f: f.write('''#!/bin/sh echo "$@" >> %s''' % self.apport_retrace_log) os.chmod(self.apport_retrace, 0o755) self.lock_file = os.path.join(self.workdir, 'lock') os.environ['APPORT_CRASHDB_CONF'] = crashdb_conf os.environ['PYTHONPATH'] = '.' self.orig_report_dir = apport.fileutils.report_dir apport.fileutils.report_dir = os.path.join(self.workdir, 'crashes') os.mkdir(apport.fileutils.report_dir) os.environ['APPORT_REPORT_DIR'] = apport.fileutils.report_dir def tearDown(self): shutil.rmtree(self.workdir) apport.fileutils.report_dir = self.orig_report_dir def call(self, args): '''Call crash-digger with given arguments. Return a pair (stdout, stderr). ''' s = subprocess.Popen(['crash-digger', '--apport-retrace', self.apport_retrace] + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = s.communicate() return (out.decode('UTF-8'), err.decode('UTF-8')) def test_crashes(self): '''Crash retracing''' (out, err) = self.call(['-c', self.config_dir, '-a', '/dev/zero', '-d', os.path.join(self.workdir, 'dup.db'), '-vl', self.lock_file]) self.assertEqual(err, '', 'no error messages:\n' + err) self.assertIn("Available releases: ['Testux 1.0', 'Testux 2.2']", out) self.assertIn('retracing #0', out) self.assertIn('retracing #1', out) self.assertIn('retracing #2', out) self.assertIn('crash is release FooLinux Pi/2 which does not have a config available', out) self.assertNotIn('failed with status', out) self.assertNotIn('#3', out, 'dupcheck crashes are not retraced') self.assertNotIn('#4', out, 'dupcheck crashes are not retraced') with open(self.apport_retrace_log) as f: retrace_log = f.read() self.assertEqual(len(retrace_log.splitlines()), 2) self.assertNotIn('dup.db -v 0\n', retrace_log) self.assertIn('dup.db -v 1\n', retrace_log) self.assertIn('dup.db -v 2\n', retrace_log) self.assertFalse(os.path.exists(self.lock_file)) self.assertFalse(os.path.isdir(os.path.join(self.workdir, 'dupdb', 'sig'))) def test_crashes_error(self): '''Crash retracing if apport-retrace fails on bug #1''' # make apport-retrace fail on bug 1 os.rename(self.apport_retrace, self.apport_retrace + '.bak') with open(self.apport_retrace, 'w') as f: f.write('''#!/bin/sh echo "$@" >> %s while [ -n "$2" ]; do shift; done if [ "$1" = 1 ]; then echo "cannot frobnicate bug" >&2 exit 1 fi ''' % self.apport_retrace_log) os.chmod(self.apport_retrace, 0o755) (out, err) = self.call(['-c', self.config_dir, '-a', '/dev/zero', '-d', os.path.join(self.workdir, 'dup.db'), '-vl', self.lock_file]) self.assertEqual(err, '') self.assertIn("Available releases: ['Testux 1.0', 'Testux 2.2']", out) self.assertIn('retracing #0', out) self.assertIn('retracing #1', out) self.assertIn('retracing #2', out) self.assertIn('crash is release FooLinux Pi/2 which does not have a config available', out) self.assertNotIn('#0 failed with status', out) self.assertIn('#1 failed with status: 1', out) self.assertNotIn('#3', out, 'dupcheck crashes are not retraced') self.assertNotIn('#4', out, 'dupcheck crashes are not retraced') with open(self.apport_retrace_log) as f: retrace_log = f.read() self.assertEqual(len(retrace_log.splitlines()), 2) self.assertNotIn('dup.db -v 0\n', retrace_log) self.assertIn('dup.db -v 1\n', retrace_log) self.assertIn('dup.db -v 2\n', retrace_log) self.assertFalse(os.path.exists(self.lock_file)) os.rename(self.apport_retrace + '.bak', self.apport_retrace) def test_crashes_transient_error(self): '''Crash retracing if apport-retrace reports a transient error''' # make apport-retrace fail on bug 1 os.rename(self.apport_retrace, self.apport_retrace + '.bak') with open(self.apport_retrace, 'w') as f: f.write('''#!/bin/sh echo "$@" >> %s while [ -n "$2" ]; do shift; done if [ "$1" = 1 ]; then echo "cannot frobnicate crash db" >&2 exit 99 fi ''' % self.apport_retrace_log) os.chmod(self.apport_retrace, 0o755) (out, err) = self.call(['-c', self.config_dir, '-a', '/dev/zero', '-d', os.path.join(self.workdir, 'dup.db'), '-vl', self.lock_file]) self.assertIn("Available releases: ['Testux 1.0', 'Testux 2.2']", out) self.assertIn('retracing #0', out) self.assertIn('retracing #1', out) self.assertNotIn('retracing #2', out, 'should not continue after errors') self.assertIn('transient error reported; halting', out) with open(self.apport_retrace_log) as f: retrace_log = f.read() self.assertIn('dup.db -v 1\n', retrace_log) # stops after failing #1 self.assertNotIn('dup.db -v 2\n', retrace_log) self.assertFalse(os.path.exists(self.lock_file)) def test_dupcheck(self): '''Duplicate checking''' (out, err) = self.call(['-a', '/dev/zero', '-d', os.path.join(self.workdir, 'dup.db'), '-vDl', self.lock_file]) self.assertEqual(err, '', 'no error messages:\n' + err) self.assertNotIn('#1', out, 'signal crashes are not retraced') self.assertNotIn('#2', out, 'signal crashes are not retraced') self.assertIn('checking #3 for duplicate', out) self.assertIn('checking #4 for duplicate', out) self.assertIn('Report is a duplicate of #3 (not fixed yet)', out) self.assertFalse(os.path.exists(self.apport_retrace_log)) self.assertFalse(os.path.exists(self.lock_file)) def test_stderr_redirection(self): '''apport-retrace's stderr is redirected to stdout''' with open(self.apport_retrace, 'w') as f: f.write('''#!/bin/sh echo ApportRetraceError >&2''') (out, err) = self.call(['-c', self.config_dir, '-a', '/dev/zero', '-d', os.path.join(self.workdir, 'dup.db'), '-vl', self.lock_file]) self.assertEqual(err, '', 'no error messages:\n' + err) self.assertIn('ApportRetraceError', out) def test_publish_db(self): '''Duplicate database publishing''' (out, err) = self.call(['-c', self.config_dir, '-a', '/dev/zero', '-d', os.path.join(self.workdir, 'dup.db'), '-vl', self.lock_file, '--publish-db', os.path.join(self.workdir, 'dupdb')]) self.assertEqual(err, '', 'no error messages:\n' + err) self.assertIn('retracing #0', out) self.assertTrue(os.path.isdir(os.path.join(self.workdir, 'dupdb', 'sig'))) def test_alternate_crashdb(self): '''Alternate crash database name''' # existing DB "empty" has no crashes (out, err) = self.call(['-c', self.config_dir, '-a', '/dev/zero', '-vl', self.lock_file, '--crash-db', 'empty']) self.assertEqual(err, '', 'no error messages:\n' + err) self.assertNotIn('retracing #', out) self.assertNotIn('crash is', out) self.assertNotIn('failed with status', out) # nonexisting DB (out, err) = self.call(['-c', self.config_dir, '-a', '/dev/zero', '-vl', self.lock_file, '--crash-db', 'nonexisting']) self.assertEqual(out, '', 'no output messages:\n' + out) self.assertNotIn('Traceback', err) self.assertIn('nonexisting', err) unittest.main() ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_crashdb.py�����������������������������������������������������������������0000664�0000000�0000000�00000067562�14416106601�014067� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# coding: UTF-8 import unittest, tempfile, shutil, os.path, copy import apport from apport.crashdb_impl.memory import CrashDatabase class T(unittest.TestCase): def setUp(self): self.workdir = tempfile.mkdtemp() self.dupdb_dir = os.path.join(self.workdir, 'dupdb') self.crashes = CrashDatabase(None, {'dummy_data': '1', 'dupdb_url': 'file://' + self.dupdb_dir}) self.assertEqual(self.crashes.get_comment_url(self.crashes.download(0), 0), 'http://foo.bugs.example.com/0') # test-suite internal consistency check: Python signatures are # indeed equal and exist assert self.crashes.download(3).crash_signature(), \ 'test-suite internal check: Python crash sigs exist' self.assertEqual(self.crashes.download(3).crash_signature(), self.crashes.download(4).crash_signature()) # we should have 5 crashes self.assertEqual(self.crashes.latest_id(), 4) def tearDown(self): shutil.rmtree(self.workdir) def test_no_dummy_data(self): '''No dummy data is added by default''' self.crashes = CrashDatabase(None, {}) self.assertEqual(self.crashes.latest_id(), -1) self.assertRaises(IndexError, self.crashes.download, 0) def test_retrace_markers(self): '''Bookkeeping in retraced and dupchecked bugs''' self.assertEqual(self.crashes.get_unretraced(), set([0, 1, 2])) self.assertEqual(self.crashes.get_dup_unchecked(), set([3, 4])) def test_dynamic_crashdb_conf(self): '''Dynamic code in crashdb.conf''' # use our dummy crashdb crashdb_conf = tempfile.NamedTemporaryFile() crashdb_conf.write(b'''default = 'testsuite' def get_dyn(): return str(2 + 2) def get_dyn_name(): return 'on_the' + 'fly' databases = { 'testsuite': { 'impl': 'memory', 'dyn_option': get_dyn(), }, get_dyn_name(): { 'impl': 'memory', 'whoami': 'dynname', } } ''') crashdb_conf.flush() db = apport.crashdb.get_crashdb(None, None, crashdb_conf.name) self.assertEqual(db.options['dyn_option'], '4') db = apport.crashdb.get_crashdb(None, 'on_thefly', crashdb_conf.name) self.assertFalse('dyn_opion' in db.options) self.assertEqual(db.options['whoami'], 'dynname') def test_accepts_default(self): '''accepts(): default configuration''' # by default crash DBs accept any type self.assertTrue(self.crashes.accepts(apport.Report('Crash'))) self.assertTrue(self.crashes.accepts(apport.Report('Bug'))) self.assertTrue(self.crashes.accepts(apport.Report('weirdtype'))) def test_accepts_problem_types(self): '''accepts(): problem_types option in crashdb.conf''' # create a crash DB with type limits crashdb_conf = tempfile.NamedTemporaryFile() crashdb_conf.write(b'''default = 'testsuite' databases = { 'testsuite': { 'impl': 'memory', 'problem_types': ['Bug', 'Kernel'], }, } ''') crashdb_conf.flush() db = apport.crashdb.get_crashdb(None, None, crashdb_conf.name) self.assertTrue(db.accepts(apport.Report('Bug'))) self.assertFalse(db.accepts(apport.Report('Crash'))) self.assertFalse(db.accepts(apport.Report('weirdtype'))) # # Test memory.py implementation # def test_submit(self): '''Crash uploading and downloading''' # setUp() already checks upload() and get_comment_url() r = self.crashes.download(0) self.assertEqual(r['SourcePackage'], 'foo') self.assertEqual(r['Package'], 'libfoo1 1.2-3') self.assertEqual(self.crashes.reports[0]['dup_of'], None) self.assertRaises(IndexError, self.crashes.download, 5) def test_get_affected_packages(self): self.assertEqual(self.crashes.get_affected_packages(0), ['foo']) self.assertEqual(self.crashes.get_affected_packages(1), ['foo']) self.assertEqual(self.crashes.get_affected_packages(2), ['bar']) self.assertEqual(self.crashes.get_affected_packages(3), ['pygoo']) def test_update(self): '''update()''' r = apport.Report() r['Package'] = 'new' r['FooBar'] = 'Bogus' r['StacktraceTop'] = 'Fresh!' self.crashes.update(1, r, 'muhaha') self.assertEqual(self.crashes.reports[1]['comment'], 'muhaha') self.assertEqual(self.crashes.download(1)['Package'], 'new') self.assertEqual(self.crashes.download(1)['StacktraceTop'], 'Fresh!') self.assertEqual(self.crashes.download(1)['FooBar'], 'Bogus') self.assertRaises(IndexError, self.crashes.update, 5, None, '') def test_update_filter(self): '''update() with key_filter''' r = apport.Report() r['Package'] = 'new' r['FooBar'] = 'Bogus' r['StacktraceTop'] = 'Fresh!' self.crashes.update(1, r, 'muhaha', key_filter=['FooBar', 'StacktraceTop']) self.assertEqual(self.crashes.reports[1]['comment'], 'muhaha') self.assertEqual(self.crashes.download(1)['Package'], 'libfoo1 1.2-4') self.assertEqual(self.crashes.download(1)['StacktraceTop'], 'Fresh!') self.assertEqual(self.crashes.download(1)['FooBar'], 'Bogus') self.assertRaises(IndexError, self.crashes.update, 5, None, '') def test_update_traces(self): '''update_traces()''' r = apport.Report() r['Package'] = 'new' r['FooBar'] = 'Bogus' r['StacktraceTop'] = 'Fresh!' self.crashes.update_traces(1, r, 'muhaha') self.assertEqual(self.crashes.reports[1]['comment'], 'muhaha') self.assertEqual(self.crashes.download(1)['Package'], 'libfoo1 1.2-4') self.assertEqual(self.crashes.download(1)['StacktraceTop'], 'Fresh!') self.assertFalse('FooBar' in self.crashes.download(1)) self.assertRaises(IndexError, self.crashes.update_traces, 5, None) def test_get_distro_release(self): '''get_distro_release()''' self.assertEqual(self.crashes.get_distro_release(0), 'FooLinux Pi/2') def test_status(self): '''get_unfixed(), get_fixed_version(), duplicate_of(), close_duplicate()''' self.assertEqual(self.crashes.get_unfixed(), set([0, 1, 2, 3, 4])) self.assertEqual(self.crashes.get_fixed_version(0), None) self.assertEqual(self.crashes.get_fixed_version(1), None) self.assertEqual(self.crashes.get_fixed_version(3), None) self.assertEqual(self.crashes.duplicate_of(0), None) self.assertEqual(self.crashes.duplicate_of(1), None) self.crashes.close_duplicate({}, 1, 0) self.assertEqual(self.crashes.duplicate_of(0), None) self.assertEqual(self.crashes.duplicate_of(1), 0) self.assertEqual(self.crashes.get_unfixed(), set([0, 2, 3, 4])) self.assertEqual(self.crashes.get_fixed_version(1), 'invalid') self.assertEqual(self.crashes.get_fixed_version(99), 'invalid') def test_mark_regression(self): '''mark_regression()''' self.crashes.reports[3]['fixed_version'] = '4.1' self.crashes.mark_regression(4, 3) self.assertEqual(self.crashes.reports[4]['comment'], 'regression, already fixed in #3') self.assertEqual(self.crashes.duplicate_of(3), None) self.assertEqual(self.crashes.duplicate_of(4), None) # # Test crash duplication detection API of crashdb.py # def test_duplicate_db_fixed(self): '''duplicate_db_fixed()''' self.crashes.init_duplicate_db(':memory:') self.assertEqual(self.crashes.check_duplicate(0), None) self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None)}) self.crashes.duplicate_db_fixed(0, '42') self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, '42')}) def test_duplicate_db_remove(self): '''duplicate_db_remove()''' # db not yet initialized self.assertRaises(AssertionError, self.crashes.check_duplicate, 0) self.crashes.init_duplicate_db(':memory:') self.assertEqual(self.crashes.check_duplicate(0), None) self.assertEqual(self.crashes.check_duplicate(2), None) # invalid ID (raising KeyError is *hard*, so it's not done) self.crashes.duplicate_db_remove(99) # nevertheless, this should not change the DB self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None), self.crashes.download(2).crash_signature(): (2, None)}) # valid ID self.crashes.duplicate_db_remove(2) # check DB consistency self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None)}) def test_check_duplicate(self): '''check_duplicate() and known()''' # db not yet initialized self.assertRaises(AssertionError, self.crashes.check_duplicate, 0, self.crashes.download(0)) self.assertRaises(AssertionError, self.crashes.check_duplicate, 0) self.crashes.init_duplicate_db(':memory:') self.assertEqual(self.crashes._duplicate_db_dump(), {}) # ID#0 -> no dup self.assertEqual(self.crashes.known(self.crashes.download(0)), None) self.assertEqual(self.crashes.check_duplicate(0), None) # can't be known before publishing DB self.assertEqual(self.crashes.known(self.crashes.download(0)), None) self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(self.crashes.download(0)), 'http://foo.bugs.example.com/0') # bug is not a duplicate of itself, when reprocessed self.assertEqual(self.crashes.check_duplicate(0), None) # ID#1 -> dup of #0 self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(self.crashes.download(1)), 'http://foo.bugs.example.com/0') self.assertEqual(self.crashes.check_duplicate(1), (0, None)) # ID#2 is unrelated, no dup self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(self.crashes.download(2)), None) self.assertEqual(self.crashes.check_duplicate(2), None) self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(self.crashes.download(2)), 'http://bar.bugs.example.com/2') # ID#3: no dup, master of ID#4 self.assertEqual(self.crashes.check_duplicate(3), None) # ID#4: dup of ID#3 self.assertEqual(self.crashes.check_duplicate(4), (3, None)) # not marked as regression self.assertEqual(self.crashes.reports[3]['comment'], '') # check DB consistency; #1 and #4 are dupes and do not appear self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None), self.crashes.download(2).crash_signature(): (2, None), self.crashes.download(3).crash_signature(): (3, None)}) # now mark the python crash as fixed self.crashes.reports[3]['fixed_version'] = '4.1' # ID#4 is dup of ID#3, but happend in version 5 -> regression self.crashes.close_duplicate(self.crashes.download(4), 4, None) # reset self.assertEqual(self.crashes.check_duplicate(4), None) self.assertEqual(self.crashes.duplicate_of(4), None) self.assertEqual(self.crashes.reports[4]['comment'], 'regression, already fixed in #3') # check DB consistency; ID#4 is a regression, thus appears as the new # master bug for the sig of 3/4 self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None), self.crashes.download(2).crash_signature(): (2, None), self.crashes.download(3).crash_signature(): (4, None)}) # add two more Python crash dups and verify that they are dup'ed # to the correct ID r = copy.copy(self.crashes.download(3)) self.assertEqual(self.crashes.get_comment_url(r, self.crashes.upload(r)), 'http://pygoo.bugs.example.com/5') self.assertEqual(self.crashes.check_duplicate(5), (3, '4.1')) self.assertEqual(self.crashes.duplicate_of(5), 3) # not marked as regression, happened earlier than #3 self.assertEqual(self.crashes.reports[5]['comment'], '') r = copy.copy(self.crashes.download(3)) r['Package'] = 'python-goo 5.1' self.assertEqual(self.crashes.get_comment_url(r, self.crashes.upload(r)), 'http://pygoo.bugs.example.com/6') self.assertEqual(self.crashes.check_duplicate(6), (4, None)) self.assertEqual(self.crashes.duplicate_of(6), 4) # not marked as regression, as it's now a dupe of new master bug 4 self.assertEqual(self.crashes.reports[6]['comment'], '') # check DB consistency; #5 and #6 are dupes of #3 and #4, so no new # entries self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None), self.crashes.download(2).crash_signature(): (2, None), self.crashes.download(3).crash_signature(): (4, None)}) # check with unknown fixed version self.crashes.reports[3]['fixed_version'] = '' self.crashes.duplicate_db_fixed(3, '') r = copy.copy(self.crashes.download(3)) r['Package'] = 'python-goo 5.1' self.assertEqual(self.crashes.get_comment_url(r, self.crashes.upload(r)), 'http://pygoo.bugs.example.com/7') self.assertEqual(self.crashes.check_duplicate(7), (3, '')) # not marked as regression self.assertEqual(self.crashes.reports[6]['comment'], '') # final consistency check self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None), self.crashes.download(2).crash_signature(): (2, None), self.crashes.download(3).crash_signature(): (4, None)}) def test_check_duplicate_utf8(self): '''check_duplicate() with UTF-8 strings''' # assertion failure, with UTF-8 strings r = apport.Report() r['Package'] = 'bash 5' r['SourcePackage'] = 'bash' r['DistroRelease'] = 'Testux 2.2' r['ExecutablePath'] = '/bin/bash' r['Signal'] = '6' r['AssertionMessage'] = 'Afirmação x != 0' self.assertEqual(self.crashes.get_comment_url(r, self.crashes.upload(r)), 'http://bash.bugs.example.com/5') self.assertEqual(self.crashes.get_comment_url(r, self.crashes.upload(r)), 'http://bash.bugs.example.com/6') self.crashes.init_duplicate_db(':memory:') self.assertEqual(self.crashes.check_duplicate(5), None) self.assertEqual(self.crashes.check_duplicate(6), (5, None)) self.crashes.duplicate_db_publish(self.dupdb_dir) def test_check_duplicate_custom_signature(self): '''check_duplicate() with custom DuplicateSignature: field''' r = apport.Report() r['SourcePackage'] = 'bash' r['Package'] = 'bash 5' r['DuplicateSignature'] = 'Code42Blue' self.assertEqual(self.crashes.get_comment_url(r, self.crashes.upload(r)), 'http://bash.bugs.example.com/5') self.crashes.init_duplicate_db(':memory:') self.assertEqual(self.crashes.check_duplicate(5), None) self.assertEqual(self.crashes._duplicate_db_dump(), {'Code42Blue': (5, None)}) # this one has a standard crash_signature self.assertEqual(self.crashes.check_duplicate(0), None) # ... but DuplicateSignature wins self.crashes.download(0)['DuplicateSignature'] = 'Code42Blue' self.assertEqual(self.crashes.check_duplicate(0), (5, None)) self.crashes.download(1)['DuplicateSignature'] = 'CodeRed' self.assertEqual(self.crashes.check_duplicate(1), None) self.assertEqual(self.crashes._duplicate_db_dump(), {'Code42Blue': (5, None), 'CodeRed': (1, None), self.crashes.download(0).crash_signature(): (0, None)}) def test_check_duplicate_report_arg(self): '''check_duplicate() with explicitly passing report''' self.crashes.init_duplicate_db(':memory:') # ID#0 -> no dup self.assertEqual(self.crashes.check_duplicate(0), None) # ID#2 is unrelated, no dup self.assertEqual(self.crashes.check_duplicate(2), None) # report from ID#1 is a dup of #0 self.assertEqual(self.crashes.check_duplicate(2, self.crashes.download(1)), (0, None)) def test_check_duplicate_multiple_masters(self): '''check_duplicate() with multiple master bugs Due to the unavoidable jitter in gdb stack traces, it can happen that a bug B has the same symbolic signature as a bug S, but the same address signature as a bug A, where A and S have slightly different symbolic and address signatures and thus were not identified as duplicates. In that case we want the lowest ID to become the new master bug, and the other two duplicates. ''' a = apport.Report() a['SourcePackage'] = 'bash' a['Package'] = 'bash 5' a.crash_signature = lambda: '/bin/bash:11:read:main' a.crash_signature_addresses = lambda: '/bin/bash:11:/lib/libc.so+123:/bin/bash+DEAD' self.assertEqual(self.crashes.get_comment_url(a, self.crashes.upload(a)), 'http://bash.bugs.example.com/5') s = apport.Report() s['SourcePackage'] = 'bash' s['Package'] = 'bash 5' s.crash_signature = lambda: '/bin/bash:11:__getch:read:main' s.crash_signature_addresses = lambda: '/bin/bash:11:/lib/libc.so+BEEF:/lib/libc.so+123:/bin/bash+DEAD' self.assertEqual(self.crashes.get_comment_url(s, self.crashes.upload(s)), 'http://bash.bugs.example.com/6') # same addr sig as a, same symbolic sig as s b = apport.Report() b['SourcePackage'] = 'bash' b['Package'] = 'bash 5' b.crash_signature = lambda: '/bin/bash:11:__getch:read:main' b.crash_signature_addresses = lambda: '/bin/bash:11:/lib/libc.so+123:/bin/bash+DEAD' self.assertEqual(self.crashes.get_comment_url(b, self.crashes.upload(b)), 'http://bash.bugs.example.com/7') self.crashes.init_duplicate_db(':memory:') self.assertEqual(self.crashes.check_duplicate(5, a), None) # a and s have slightly different sigs -> no dupe self.assertEqual(self.crashes.check_duplicate(6, s), None) # now throw the interesting b at it self.assertEqual(self.crashes.check_duplicate(7, b), (5, None)) # s and b should now be duplicates of a self.assertEqual(self.crashes.duplicate_of(5), None) self.assertEqual(self.crashes.duplicate_of(6), 5) self.assertEqual(self.crashes.duplicate_of(7), 5) # sig DB should only have a now self.assertEqual(self.crashes._duplicate_db_dump(), {'/bin/bash:11:read:main': (5, None)}) # addr DB should have both possible patterns on a self.assertEqual(self.crashes._duplicate_search_address_signature(b.crash_signature_addresses()), 5) self.assertEqual(self.crashes._duplicate_search_address_signature(s.crash_signature_addresses()), 5) def test_known_address_sig(self): '''known() for address signatures''' self.crashes.init_duplicate_db(':memory:') r = apport.Report() r['SourcePackage'] = 'bash' r['Package'] = 'bash 5' r['ExecutablePath'] = '/bin/bash' r['Signal'] = '11' r['ProcMaps'] = ''' 00400000-004df000 r-xp 00000000 08:02 1044485 /bin/bash 7f491fa8f000-7f491fc24000 r-xp 00000000 08:02 522605 /lib/x86_64-linux-gnu/libc-2.13.so ''' r['Stacktrace'] = ''' #0 0x00007f491fac5687 in kill () #1 0x000000000042eb76 in ?? () #2 0x00000000004324d8 in ?? #3 0x00000000004707e3 in parse_and_execute () #4 0x000000000041d703 in _start () ''' self.assertNotEqual(r.crash_signature_addresses(), None) self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(r), None) r_id = self.crashes.upload(r) self.assertEqual(self.crashes.check_duplicate(r_id), None) self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(r), self.crashes.get_comment_url(r, r_id)) # another report with same address signature r2 = apport.Report() r2['SourcePackage'] = 'bash' r2['Package'] = 'bash 5' r2['ExecutablePath'] = '/bin/bash' r2['Signal'] = '11' r2['ProcMaps'] = ''' 00400000-004df000 r-xp 00000000 08:02 1044485 /bin/bash 5f491fa8f000-5f491fc24000 r-xp 00000000 08:02 522605 /lib/x86_64-linux-gnu/libc-2.13.so ''' r2['Stacktrace'] = ''' #0 0x00005f491fac5687 in kill () #1 0x000000000042eb76 in ?? () #2 0x00000000004324d8 in ?? #3 0x00000000004707e3 in parse_and_execute () #4 0x000000000041d703 in _start () ''' self.assertEqual(r.crash_signature_addresses(), r2.crash_signature_addresses()) # DB knows about this already self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(r2), self.crashes.get_comment_url(r, r_id)) # if it gets uploaded anyway, duplicate it properly r2_id = self.crashes.upload(r2) self.assertEqual(self.crashes.check_duplicate(r2_id), (r_id, None)) # different address signature r3 = apport.Report() r3['SourcePackage'] = 'bash' r3['Package'] = 'bash 5' r3['ExecutablePath'] = '/bin/bash' r3['Signal'] = '11' r3['ProcMaps'] = ''' 00400000-004df000 r-xp 00000000 08:02 1044485 /bin/bash 5f491fa8f000-5f491fc24000 r-xp 00000000 08:02 522605 /lib/x86_64-linux-gnu/libc-2.13.so ''' r3['Stacktrace'] = ''' #0 0x00005f491fac5687 in kill () #1 0x000000000042eb76 in ?? () #2 0x0000000000432401 in ?? #3 0x00000000004707e3 in parse_and_execute () #4 0x000000000041d703 in _start () ''' self.assertNotEqual(r.crash_signature_addresses(), r3.crash_signature_addresses()) self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(r3), None) # pretend that we went through retracing and r and r3 are actually # dupes; temporarily add a signature here to convince check_duplicate() self.crashes.init_duplicate_db(':memory:') r['DuplicateSignature'] = 'moo' r3['DuplicateSignature'] = 'moo' r_id = self.crashes.upload(r) self.assertEqual(self.crashes.check_duplicate(r_id), None) r3_id = self.crashes.upload(r3) self.assertEqual(self.crashes.check_duplicate(r3_id), (r_id, None)) del r['DuplicateSignature'] del r3['DuplicateSignature'] # now both r and r3 address sigs should be known as r_id self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(r), self.crashes.get_comment_url(r, r_id)) self.assertEqual(self.crashes.known(r3), self.crashes.get_comment_url(r3, r_id)) # changing ID also works on address signatures self.crashes.duplicate_db_change_master_id(r_id, r3_id) self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(r), self.crashes.get_comment_url(r, r3_id)) self.assertEqual(self.crashes.known(r3), self.crashes.get_comment_url(r3, r3_id)) # removing an ID also works for address signatures self.crashes.duplicate_db_remove(r3_id) self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(r), None) self.assertEqual(self.crashes.known(r3), None) self.assertEqual(self.crashes._duplicate_db_dump(), {}) def test_duplicate_db_publish_long_sigs(self): '''duplicate_db_publish() with very long signatures''' self.crashes.init_duplicate_db(':memory:') # give #0 a long symbolic sig which needs lots of quoting symb = self.crashes.download(0) symb.crash_signature = lambda: 's+' * 1000 # and #1 a long addr sig addr = self.crashes.download(1) addr.crash_signature_addresses = lambda: '0x1+/' * 1000 self.assertEqual(self.crashes.known(symb), None) self.assertEqual(self.crashes.check_duplicate(0), None) self.assertEqual(self.crashes.known(addr), None) self.assertEqual(self.crashes.check_duplicate(1), None) self.crashes.duplicate_db_publish(self.dupdb_dir) self.assertEqual(self.crashes.known(symb), 'http://foo.bugs.example.com/0') self.assertEqual(self.crashes.known(addr), 'http://foo.bugs.example.com/1') def test_change_master_id(self): '''duplicate_db_change_master_id()''' # db not yet initialized self.assertRaises(AssertionError, self.crashes.check_duplicate, 0) self.crashes.init_duplicate_db(':memory:') self.assertEqual(self.crashes.check_duplicate(0), None) self.assertEqual(self.crashes.check_duplicate(2), None) # check DB consistency self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None), self.crashes.download(2).crash_signature(): (2, None)}) # invalid ID (raising KeyError is *hard*, so it's not done) self.crashes.duplicate_db_change_master_id(5, 99) # nevertheless, this should not change the DB self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None), self.crashes.download(2).crash_signature(): (2, None)}) # valid ID self.crashes.duplicate_db_change_master_id(2, 99) # check DB consistency self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None), self.crashes.download(2).crash_signature(): (99, None)}) def test_db_corruption(self): '''Detection of DB file corruption''' try: (fd, db) = tempfile.mkstemp() os.close(fd) self.crashes.init_duplicate_db(db) self.assertEqual(self.crashes.check_duplicate(0), None) self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, None)}) self.crashes.duplicate_db_fixed(0, '42') self.assertEqual(self.crashes._duplicate_db_dump(), {self.crashes.download(0).crash_signature(): (0, '42')}) del self.crashes # damage file f = open(db, 'r+') f.truncate(os.path.getsize(db) * 2 / 3) f.close() self.crashes = CrashDatabase(None, {}) self.assertRaises(Exception, self.crashes.init_duplicate_db, db) finally: os.unlink(db) if __name__ == '__main__': unittest.main() ����������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_fileutils.py���������������������������������������������������������������0000664�0000000�0000000�00000067777�15013704444�014474� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������import unittest, tempfile, os, shutil, time, sys, pwd import pathlib import problem_report import apport.fileutils import apport.packaging from io import BytesIO from unittest.mock import patch class T(unittest.TestCase): def setUp(self): self.orig_report_dir = apport.fileutils.report_dir apport.fileutils.report_dir = tempfile.mkdtemp() self.orig_config_file = apport.fileutils._config_file def tearDown(self): shutil.rmtree(apport.fileutils.report_dir) apport.fileutils.report_dir = self.orig_report_dir self.orig_report_dir = None apport.fileutils._config_file = self.orig_config_file def _create_reports(self, create_inaccessible=False): '''Create some test reports''' r1 = os.path.join(apport.fileutils.report_dir, 'rep1.crash') r2 = os.path.join(apport.fileutils.report_dir, 'rep2.crash') with open(r1, 'w') as fd: fd.write('report 1') with open(r2, 'w') as fd: fd.write('report 2') os.chmod(r1, 0o600) os.chmod(r2, 0o600) if create_inaccessible: ri = os.path.join(apport.fileutils.report_dir, 'inaccessible.crash') with open(ri, 'w') as fd: fd.write('inaccessible') os.chmod(ri, 0) return [r1, r2, ri] else: return [r1, r2] def test_find_package_desktopfile(self): '''find_package_desktopfile()''' # package without any .desktop file nodesktop = 'bash' assert len([f for f in apport.packaging.get_files(nodesktop) if f.endswith('.desktop')]) == 0 # find a package with one, a package with multiple .desktop files, and # a package with a NoDisplay .desktop file onedesktop = None multidesktop = None nodisplay = None found_some = False for d in os.listdir('/usr/share/applications/'): if not d.endswith('.desktop'): continue path = os.path.join('/usr/share/applications/', d) pkg = apport.packaging.get_file_package(path) if pkg is None: continue found_some = True num = len([f for f in apport.packaging.get_files(pkg) if f.endswith('.desktop')]) with open(path, 'rb') as f: if b'NoDisplay=true' in f.read(): if not nodisplay and num == 1: nodisplay = pkg continue if not onedesktop and num == 1: onedesktop = pkg elif not multidesktop and num > 1: multidesktop = pkg if onedesktop and multidesktop and nodisplay: break self.assertTrue(found_some) if nodesktop: self.assertEqual(apport.fileutils.find_package_desktopfile(nodesktop), None, 'no-desktop package %s' % nodesktop) if multidesktop: self.assertEqual(apport.fileutils.find_package_desktopfile(multidesktop), None, 'multi-desktop package %s' % multidesktop) if onedesktop: d = apport.fileutils.find_package_desktopfile(onedesktop) self.assertNotEqual(d, None, 'one-desktop package %s' % onedesktop) self.assertTrue(os.path.exists(d)) self.assertTrue(d.endswith('.desktop')) if nodisplay: self.assertEqual(apport.fileutils.find_package_desktopfile(nodisplay), None, 'NoDisplay package %s' % nodisplay) def test_likely_packaged(self): '''likely_packaged()''' self.assertEqual(apport.fileutils.likely_packaged('/bin/bash'), True) self.assertEqual(apport.fileutils.likely_packaged('/usr/bin/foo'), True) self.assertEqual(apport.fileutils.likely_packaged('/usr/local/bin/foo'), False) self.assertEqual(apport.fileutils.likely_packaged('/home/test/bin/foo'), False) self.assertEqual(apport.fileutils.likely_packaged('/tmp/foo'), False) # ignore crashes in /var/lib (LP#122859, LP#414368) self.assertEqual(apport.fileutils.likely_packaged('/var/lib/foo'), False) def test_find_file_package(self): '''find_file_package()''' self.assertEqual(apport.fileutils.find_file_package('/bin/bash'), 'bash') self.assertEqual(apport.fileutils.find_file_package('/bin/cat'), 'coreutils') self.assertEqual(apport.fileutils.find_file_package('/nonexisting'), None) def test_seen(self): '''get_new_reports() and seen_report()''' self.assertEqual(apport.fileutils.get_new_reports(), []) if os.getuid() == 0: tr = self._create_reports(True) else: tr = [r for r in self._create_reports(True) if 'inaccessible' not in r] self.assertEqual(set(apport.fileutils.get_new_reports()), set(tr)) # now mark them as seen and check again nr = set(tr) for r in tr: self.assertEqual(apport.fileutils.seen_report(r), False) nr.remove(r) apport.fileutils.mark_report_seen(r) self.assertEqual(apport.fileutils.seen_report(r), True) self.assertEqual(set(apport.fileutils.get_new_reports()), nr) def test_mark_hanging_process(self): '''mark_hanging_process()''' pr = problem_report.ProblemReport() pr['ExecutablePath'] = '/bin/bash' apport.fileutils.mark_hanging_process(pr, '1') uid = str(os.getuid()) base = '_bin_bash.%s.1.hanging' % uid expected = os.path.join(apport.fileutils.report_dir, base) self.assertTrue(os.path.exists(expected)) def test_mark_report_upload(self): '''mark_report_upload()''' report = os.path.join(apport.fileutils.report_dir, 'report.crash') apport.fileutils.mark_report_upload(report) expected = os.path.join(apport.fileutils.report_dir, 'report.upload') self.assertTrue(os.path.exists(expected)) def test_mark_2nd_report_upload(self): '''mark_report_upload() for a previously uploaded report''' upload = os.path.join(apport.fileutils.report_dir, 'report.upload') with open(upload, 'w'): pass uploaded = os.path.join(apport.fileutils.report_dir, 'report.uploaded') with open(uploaded, 'w'): pass time.sleep(1) report = os.path.join(apport.fileutils.report_dir, 'report.crash') with open(report, 'w'): pass time.sleep(1) apport.fileutils.mark_report_upload(report) upload_st = os.stat(upload) report_st = os.stat(report) self.assertTrue(upload_st.st_mtime > report_st.st_mtime) def test_get_all_reports(self): '''get_all_reports()''' self.assertEqual(apport.fileutils.get_all_reports(), []) if os.getuid() == 0: tr = self._create_reports(True) else: tr = [r for r in self._create_reports(True) if 'inaccessible' not in r] self.assertEqual(set(apport.fileutils.get_all_reports()), set(tr)) # now mark them as seen and check again for r in tr: apport.fileutils.mark_report_seen(r) self.assertEqual(set(apport.fileutils.get_all_reports()), set(tr)) def test_get_system_reports(self): '''get_all_system_reports() and get_new_system_reports()''' self.assertEqual(apport.fileutils.get_all_reports(), []) self.assertEqual(apport.fileutils.get_all_system_reports(), []) if os.getuid() == 0: tr = self._create_reports(True) self.assertEqual(set(apport.fileutils.get_all_system_reports()), set(tr)) self.assertEqual(set(apport.fileutils.get_new_system_reports()), set(tr)) # now mark them as seen and check again for r in tr: apport.fileutils.mark_report_seen(r) self.assertEqual(set(apport.fileutils.get_all_system_reports()), set(tr)) self.assertEqual(set(apport.fileutils.get_new_system_reports()), set([])) else: tr = [r for r in self._create_reports(True) if 'inaccessible' not in r] self.assertEqual(set(apport.fileutils.get_all_system_reports()), set([])) self.assertEqual(set(apport.fileutils.get_new_system_reports()), set([])) @patch.object(os, 'stat') @patch.object(pwd, 'getpwuid') def test_get_system_reports_guest(self, *args): '''get_all_system_reports() filters out reports from guest user''' self._create_reports() os.stat.return_value.st_size = 1000 os.stat.return_value.st_uid = 123 pwd.getpwuid.return_value.pw_name = 'guest_tmp987' self.assertEqual(apport.fileutils.get_all_system_reports(), []) def test_unwritable_report(self): '''get_all_reports() and get_new_reports() for unwritable report''' self.assertEqual(apport.fileutils.get_all_reports(), []) self.assertEqual(apport.fileutils.get_all_system_reports(), []) r = os.path.join(apport.fileutils.report_dir, 'unwritable.crash') with open(r, 'w') as fd: fd.write('unwritable') os.chmod(r, 0o444) if os.getuid() == 0: self.assertEqual(set(apport.fileutils.get_new_reports()), set([r])) self.assertEqual(set(apport.fileutils.get_all_reports()), set([r])) else: self.assertEqual(set(apport.fileutils.get_new_reports()), set()) self.assertEqual(set(apport.fileutils.get_all_reports()), set()) def test_delete_report(self): '''delete_report()''' tr = self._create_reports() while tr: self.assertEqual(set(apport.fileutils.get_all_reports()), set(tr)) apport.fileutils.delete_report(tr.pop()) def test_get_recent_crashes(self): '''get_recent_crashes()''' # incomplete fields r = BytesIO(b'''ProblemType: Crash''') self.assertEqual(apport.fileutils.get_recent_crashes(r), 0) r = BytesIO(b'''ProblemType: Crash Date: Wed Aug 01 00:00:01 1990''') self.assertEqual(apport.fileutils.get_recent_crashes(r), 0) # ancient report r = BytesIO(b'''ProblemType: Crash Date: Wed Aug 01 00:00:01 1990 CrashCounter: 3''') self.assertEqual(apport.fileutils.get_recent_crashes(r), 0) # old report (one day + one hour ago) date = time.ctime(time.mktime(time.localtime()) - 25 * 3600) r = BytesIO(b'''ProblemType: Crash Date: ''' + date.encode() + b''' CrashCounter: 3''') self.assertEqual(apport.fileutils.get_recent_crashes(r), 0) # current report (one hour ago) date = time.ctime(time.mktime(time.localtime()) - 3600) r = BytesIO(b'''ProblemType: Crash Date: ''' + date.encode() + b''' CrashCounter: 3''') self.assertEqual(apport.fileutils.get_recent_crashes(r), 3) def test_make_report_file(self): '''make_report_file()''' pr = problem_report.ProblemReport() self.assertRaises(ValueError, apport.fileutils.make_report_file, pr) pr['Package'] = 'bash 1' with apport.fileutils.make_report_file(pr) as f: if sys.version >= '3': path = f.name else: path = os.path.join(apport.fileutils.report_dir, os.listdir(apport.fileutils.report_dir)[0]) self.assertTrue(path.startswith('%s/bash' % apport.fileutils.report_dir), path) os.unlink(path) pr['ExecutablePath'] = '/bin/bash' with apport.fileutils.make_report_file(pr) as f: if sys.version >= '3': path = f.name else: path = os.path.join(apport.fileutils.report_dir, os.listdir(apport.fileutils.report_dir)[0]) self.assertTrue(path.startswith('%s/_bin_bash' % apport.fileutils.report_dir), path) # file exists already, should fail now self.assertRaises(OSError, apport.fileutils.make_report_file, pr) # should still fail if it's a dangling symlink os.unlink(path) os.symlink(os.path.join(apport.fileutils.report_dir, 'pwned'), path) self.assertRaises(OSError, apport.fileutils.make_report_file, pr) def test_check_files_md5(self): '''check_files_md5()''' f1 = os.path.join(apport.fileutils.report_dir, 'test 1.txt') f2 = os.path.join(apport.fileutils.report_dir, 'test:2.txt') sumfile = os.path.join(apport.fileutils.report_dir, 'sums.txt') with open(f1, 'w') as fd: fd.write('Some stuff') with open(f2, 'w') as fd: fd.write('More stuff') # use one relative and one absolute path in checksums file with open(sumfile, 'w') as fd: fd.write('''2e41290da2fa3f68bd3313174467e3b5 %s f6423dfbc4faf022e58b4d3f5ff71a70 %s ''' % (f1[1:], f2)) self.assertEqual(apport.fileutils.check_files_md5(sumfile), [], 'correct md5sums') with open(f1, 'w') as fd: fd.write('Some stuff!') self.assertEqual(apport.fileutils.check_files_md5(sumfile), [f1[1:]], 'file 1 wrong') with open(f2, 'w') as fd: fd.write('More stuff!') self.assertEqual(apport.fileutils.check_files_md5(sumfile), [f1[1:], f2], 'files 1 and 2 wrong') with open(f1, 'w') as fd: fd.write('Some stuff') self.assertEqual(apport.fileutils.check_files_md5(sumfile), [f2], 'file 2 wrong') def test_get_config(self): '''get_config()''' # nonexisting apport.fileutils._config_file = '/nonexisting' self.assertEqual(apport.fileutils.get_config('main', 'foo'), None) self.assertEqual(apport.fileutils.get_config('main', 'foo', 'moo'), 'moo') apport.fileutils.get_config.config = None # trash cache # empty f = tempfile.NamedTemporaryFile() apport.fileutils._config_file = f.name self.assertEqual(apport.fileutils.get_config('main', 'foo'), None) self.assertEqual(apport.fileutils.get_config('main', 'foo', 'moo'), 'moo') apport.fileutils.get_config.config = None # trash cache # nonempty f.write(b'[main]\none=1\ntwo = TWO\nb1 = 1\nb2=False\n[spethial]\none= 99\n') f.flush() self.assertEqual(apport.fileutils.get_config('main', 'foo'), None) self.assertEqual(apport.fileutils.get_config('main', 'foo', 'moo'), 'moo') self.assertEqual(apport.fileutils.get_config('main', 'one'), '1') self.assertEqual(apport.fileutils.get_config('main', 'one', default='moo'), '1') self.assertEqual(apport.fileutils.get_config('main', 'two'), 'TWO') self.assertEqual(apport.fileutils.get_config('main', 'b1', bool=True), True) self.assertEqual(apport.fileutils.get_config('main', 'b2', bool=True), False) self.assertEqual(apport.fileutils.get_config('main', 'b3', bool=True), None) self.assertEqual(apport.fileutils.get_config('main', 'b3', default=False, bool=True), False) self.assertEqual(apport.fileutils.get_config('spethial', 'one'), '99') self.assertEqual(apport.fileutils.get_config('spethial', 'two'), None) self.assertEqual(apport.fileutils.get_config('spethial', 'one', 'moo'), '99') self.assertEqual(apport.fileutils.get_config('spethial', 'nope', 'moo'), 'moo') apport.fileutils.get_config.config = None # trash cache # interpolation f.write(b'[inter]\none=1\ntwo = TWO\ntest = %(two)s\n') f.flush() self.assertEqual(apport.fileutils.get_config('inter', 'one'), '1') self.assertEqual(apport.fileutils.get_config('inter', 'two'), 'TWO') self.assertEqual(apport.fileutils.get_config('inter', 'test'), '%(two)s') apport.fileutils.get_config.config = None # trash cache f.close() def test_get_dbus_socket(self): '''get_dbus_socket()''' tests = [("unix:path=/run/user/1000/bus", "/run/user/1000/bus"), ("unix:path=/run/user/1000/bus;unix:path=/run/user/0/bus", None), ("unix:path=%2Frun/user/1000/bus", None), ("unix:path=/run/user/1000/bus,path=/run/user/0/bus", None), ("unix:path=/etc/passwd", None), ("unix:path=/run/user/../../etc/passwd", None), ("unix:path=/run/user/1000/bus=", None), ("", None), ("tcp:host=localhost,port=8100", None)] for (addr, result) in tests: self.assertEqual(apport.fileutils.get_dbus_socket(addr), result) def test_shared_libraries(self): '''shared_libraries()''' libs = apport.fileutils.shared_libraries(sys.executable) self.assertGreater(len(libs), 3) self.assertTrue('libc.so.6' in libs, libs) self.assertTrue('libc.so.6' in libs['libc.so.6'], libs['libc.so.6']) self.assertTrue(os.path.exists(libs['libc.so.6'])) for line in libs: self.assertFalse('vdso' in line, libs) self.assertTrue(os.path.exists(libs[line])) self.assertEqual(apport.fileutils.shared_libraries('/non/existing'), {}) self.assertEqual(apport.fileutils.shared_libraries('/etc'), {}) self.assertEqual(apport.fileutils.shared_libraries('/etc/passwd'), {}) def test_links_with_shared_library(self): '''links_with_shared_library()''' self.assertTrue(apport.fileutils.links_with_shared_library(sys.executable, 'libc')) self.assertTrue(apport.fileutils.links_with_shared_library(sys.executable, 'libc.so.6')) self.assertFalse(apport.fileutils.links_with_shared_library(sys.executable, 'libc.so.7')) self.assertFalse(apport.fileutils.links_with_shared_library(sys.executable, 'libd')) self.assertFalse(apport.fileutils.links_with_shared_library('/non/existing', 'libc')) self.assertFalse(apport.fileutils.links_with_shared_library('/etc', 'libc')) self.assertFalse(apport.fileutils.links_with_shared_library('/etc/passwd', 'libc')) def test_get_starttime(self): '''get_starttime()''' template = ('2022799 (%s) S 1834041 2022799 2022799 34820 ' '2022806 4194304 692 479 0 0 2 0 0 0 20 0 1 0 ' '34034895 13750272 1270 18446744073709551615 ' '94876723015680 94876723738373 140731174338544 ' '0 0 0 65536 3670020 1266777851 1 0 0 17 7 0 0 0 0 0 ' '94876723969264 94876724016644 94876748173312 ' '140731174345133 140731174345138 140731174345138 ' '140731174346734 0\n') for name in ['goodname', 'bad name', '(badname', 'badname)', '(badname)', '((badname))', 'badname(', ')badname', 'bad) name', 'bad) name\\']: starttime = apport.fileutils.get_starttime(template % name) self.assertEqual(starttime, 34034895) def test_get_uid_and_gid(self): '''get_uid_and_gid()''' # Python 3's open uses universal newlines, which means all # line endings get replaced with \n, so we don't need to test # different line ending combinations template = ('Name:\t%s\n' 'Umask:\t0002\n' 'State:\tS (sleeping)\n' 'Tgid:\t2288405\n' 'Ngid:\t0\n' 'Pid:\t2288405\n' 'PPid:\t2167353\n' 'TracerPid:\t0\n' 'Uid:\t1000\t1000\t1000\t1000\n' 'Gid:\t2000\t2000\t2000\t2000\n' 'FDSize:\t256\n' 'Groups:\t4 20 24 27 30 46 108 120 131 132 135 137 1000 \n' 'NStgid:\t2288405\n' 'NSpid:\t2288405\n' 'NSpgid:\t2288405\n' 'NSsid:\t2288405\n' 'VmPeak:\t 13428 kB\n' 'VmSize:\t 13428 kB\n' 'VmLck:\t 0 kB\n' 'VmPin:\t 0 kB\n' 'VmHWM:\t 5200 kB\n' 'VmRSS:\t 5200 kB\n' 'RssAnon:\t 1700 kB\n' 'RssFile:\t 3500 kB\n' 'RssShmem:\t 0 kB\n' 'VmData:\t 1600 kB\n' 'VmStk:\t 132 kB\n' 'VmExe:\t 708 kB\n' 'VmLib:\t 1748 kB\n' 'VmPTE:\t 68 kB\n' 'VmSwap:\t 0 kB\n' 'HugetlbPages:\t 0 kB\n' 'CoreDumping:\t0\n' 'THP_enabled:\t1\n' 'Threads:\t1\n' 'SigQ:\t0/62442\n' 'SigPnd:\t0000000000000000\n' 'ShdPnd:\t0000000000000000\n' 'SigBlk:\t0000000000010000\n' 'SigIgn:\t0000000000380004\n' 'SigCgt:\t000000004b817efb\n' 'CapInh:\t0000000000000000\n' 'CapPrm:\t0000000000000000\n' 'CapEff:\t0000000000000000\n' 'CapBnd:\t000000ffffffffff\n' 'CapAmb:\t0000000000000000\n' 'NoNewPrivs:\t0\n' 'Seccomp:\t0\n' 'Speculation_Store_Bypass:\tthread vulnerable\n' 'Cpus_allowed:\tff\n' 'Cpus_allowed_list:\t0-7\n' 'Mems_allowed:\t00000000,00000000,00000000,00000000,' '00000000,00000000,00000000,00000000,00000000,' '00000000,00000000,00000000,00000000,00000000,' '00000000,00000000,00000000,00000000,00000000,' '00000000,00000000,00000000,00000000,00000000,' '00000000,00000000,00000000,00000000,00000000,' '00000000,00000000,00000001\n' 'Mems_allowed_list:\t0\n' 'voluntary_ctxt_switches:\t133\n' 'nonvoluntary_ctxt_switches:\t0\n') for name in ['goodname', 'Uid:', '\nUid:', 'Uid: 1000 1000 1000\n', 'a\nUid: 0\nGid: 0', 'a\nUid: 0\nGid:']: (uid, gid) = apport.fileutils.get_uid_and_gid(template % name) self.assertEqual(uid, 1000) self.assertEqual(gid, 2000) def test_get_core_path(self): '''get_core_path()''' boot_id = apport.fileutils.get_boot_id() # Basic test (core_name, core_path) = apport.fileutils.get_core_path( pid=123, exe="/usr/bin/test", uid=234, timestamp=222222) expected = "core._usr_bin_test.234." + boot_id + ".123.222222" expected_path = os.path.join(apport.fileutils.core_dir, expected) self.assertEqual(core_name, expected) self.assertEqual(core_path, expected_path) # Test dots in exe names (core_name, core_path) = apport.fileutils.get_core_path( pid=123, exe="/usr/bin/test.sh", uid=234, timestamp=222222) expected = "core._usr_bin_test_sh.234." + boot_id + ".123.222222" expected_path = os.path.join(apport.fileutils.core_dir, expected) self.assertEqual(core_name, expected) self.assertEqual(core_path, expected_path) # Test no exe name (core_name, core_path) = apport.fileutils.get_core_path( pid=123, exe=None, uid=234, timestamp=222222) expected = "core.unknown.234." + boot_id + ".123.222222" expected_path = os.path.join(apport.fileutils.core_dir, expected) self.assertEqual(core_name, expected) self.assertEqual(core_path, expected_path) # Test no uid (core_name, core_path) = apport.fileutils.get_core_path( pid=123, exe="/usr/bin/test", uid=None, timestamp=222222) expected = ("core._usr_bin_test." + str(os.getuid()) + "." + boot_id + ".123.222222") expected_path = os.path.join(apport.fileutils.core_dir, expected) self.assertEqual(core_name, expected) self.assertEqual(core_path, expected_path) @patch("apport.fileutils.get_boot_id") def test_get_core_path_missing_timestamp(self, get_boot_id_mock): """Test get_core_path() with missing timestamp parameter.""" get_boot_id_mock.return_value = "boot-id" pid = os.getpid() core_name, core_path = apport.fileutils.get_core_path(pid, "/usr/bin/python3") with open("/proc/%s/stat" % pid, encoding="utf-8") as stat_file: contents = stat_file.read() starttime = apport.fileutils.get_starttime(contents) expected = "core._usr_bin_python3.%s.boot-id.%s.%s" % (os.getuid(), pid, starttime) expected_path = os.path.join(apport.fileutils.core_dir, expected) self.assertEqual(core_name, expected) self.assertEqual(core_path, expected_path) get_boot_id_mock.assert_called_once_with() @patch("apport.fileutils.get_boot_id") def test_get_core_path_proc_pid_fd(self, get_boot_id_mock): """Test get_core_path() with proc_pid_fd provided.""" get_boot_id_mock.return_value = "boot-id" fake_pid = 67890 now = int(time.clock_gettime(time.CLOCK_BOOTTIME) * 100) with tempfile.TemporaryDirectory() as tmpdir: stat = pathlib.Path(tmpdir) / "stat" stat.write_text("%s (name) ?%s %s ...\n" % (fake_pid, ' x' * 18, now)) exe = pathlib.Path(tmpdir) / "exe" exe.symlink_to("/usr/bin/myprog") fd = os.open(tmpdir, os.O_RDONLY | os.O_PATH | os.O_DIRECTORY) try: (core_name, core_path) = apport.fileutils.get_core_path( fake_pid, uid=42, proc_pid_fd=fd ) finally: os.close(fd) expected = "core._usr_bin_myprog.42.boot-id.%s.%s" % (fake_pid, now) expected_path = os.path.join(apport.fileutils.core_dir, expected) self.assertEqual(core_name, expected) self.assertEqual(core_path, expected_path) get_boot_id_mock.assert_called_once_with() def test_clean_core_directory(self): '''clean_core_directory()''' fake_uid = 5150 extra_core_files = 4 num_core_files = apport.fileutils.max_corefiles_per_uid + extra_core_files # Create some test files for x in range(num_core_files): (core_name, core_path) = apport.fileutils.get_core_path( pid=123 + x, exe="/usr/bin/test", uid=fake_uid, timestamp=222222 + x) with open(core_path, 'w') as fd: fd.write('Some stuff') time.sleep(1) # Create a file with a different uid (core_name, core_path) = apport.fileutils.get_core_path( pid=231, exe="/usr/bin/test", uid=fake_uid + 1, timestamp=333333) with open(core_path, 'w') as fd: fd.write('Some stuff') # Make sure we have the proper number of test files self.assertEqual(num_core_files, len(apport.fileutils.find_core_files_by_uid(fake_uid))) self.assertEqual(1, len(apport.fileutils.find_core_files_by_uid(fake_uid + 1))) # Clean out the directory apport.fileutils.clean_core_directory(fake_uid) # Make sure we have the proper number of test files. We should # have one less than max_corefiles_per_uid. self.assertEqual(apport.fileutils.max_corefiles_per_uid - 1, len(apport.fileutils.find_core_files_by_uid(fake_uid))) self.assertEqual(1, len(apport.fileutils.find_core_files_by_uid(fake_uid + 1))) # Make sure we deleted the oldest ones for x in range(apport.fileutils.max_corefiles_per_uid - 1): offset = extra_core_files + x + 1 (core_name, core_path) = apport.fileutils.get_core_path( pid=123 + offset, exe="/usr/bin/test", uid=fake_uid, timestamp=222222 + offset) self.assertTrue(os.path.exists(core_path)) if __name__ == '__main__': unittest.main() �apport-2.20.11/test/test_hooks.py�������������������������������������������������������������������0000664�0000000�0000000�00000035772�14416105132�013600� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Test the various package hooks.''' # Copyright (C) 2007 - 2009 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import unittest, subprocess, tempfile, os, shutil, os.path, sys, optparse from datetime import datetime import apport, apport.fileutils # parse command line options optparser = optparse.OptionParser('%prog [options]') datadir = os.environ.get('APPORT_DATA_DIR', '/usr/share/apport') class T(unittest.TestCase): def setUp(self): self.orig_report_dir = apport.fileutils.report_dir apport.fileutils.report_dir = tempfile.mkdtemp() os.environ['APPORT_REPORT_DIR'] = apport.fileutils.report_dir self.workdir = tempfile.mkdtemp() def tearDown(self): shutil.rmtree(apport.fileutils.report_dir) apport.fileutils.report_dir = self.orig_report_dir shutil.rmtree(self.workdir) def test_package_hook_nologs(self): '''package_hook without any log files.''' ph = subprocess.Popen(['%s/package_hook' % datadir, '-p', 'bash'], stdin=subprocess.PIPE) ph.communicate(b'something is wrong') self.assertEqual(ph.returncode, 0, 'package_hook finished successfully') reps = apport.fileutils.get_new_reports() self.assertEqual(len(reps), 1, 'package_hook created a report') r = apport.Report() with open(reps[0], 'rb') as f: r.load(f) self.assertEqual(r['ProblemType'], 'Package') self.assertEqual(r['Package'], 'bash ' + apport.packaging.get_version('bash')) self.assertEqual(r['ErrorMessage'], 'something is wrong') def test_package_hook_uninstalled(self): '''package_hook on an uninstalled package (might fail to install).''' pkg = apport.packaging.get_uninstalled_package() ph = subprocess.Popen(['%s/package_hook' % datadir, '-p', pkg], stdin=subprocess.PIPE) ph.communicate(b'something is wrong') self.assertEqual(ph.returncode, 0, 'package_hook finished successfully') reps = apport.fileutils.get_new_reports() self.assertEqual(len(reps), 1, 'package_hook created a report') r = apport.Report() with open(reps[0], 'rb') as f: r.load(f) self.assertEqual(r['ProblemType'], 'Package') self.assertEqual(r['Package'], pkg + ' (not installed)') self.assertEqual(r['ErrorMessage'], 'something is wrong') def test_package_hook_logs(self): '''package_hook with a log dir and a log file.''' with open(os.path.join(self.workdir, 'log_1.log'), 'w') as f: f.write('Log 1\nbla') with open(os.path.join(self.workdir, 'log2'), 'w') as f: f.write('Yet\nanother\nlog') os.mkdir(os.path.join(self.workdir, 'logsub')) with open(os.path.join(self.workdir, 'logsub', 'notme.log'), 'w') as f: f.write('not me!') ph = subprocess.Popen(['%s/package_hook' % datadir, '-p', 'bash', '-l', os.path.realpath(sys.argv[0]), '-l', self.workdir], stdin=subprocess.PIPE) ph.communicate(b'something is wrong') self.assertEqual(ph.returncode, 0, 'package_hook finished successfully') reps = apport.fileutils.get_new_reports() self.assertEqual(len(reps), 1, 'package_hook created a report') r = apport.Report() with open(reps[0], 'rb') as f: r.load(f) filekey = None log1key = None log2key = None for k in r.keys(): if k.endswith('Testhookspy'): filekey = k elif k.endswith('Log1log'): log1key = k elif k.endswith('Log2'): log2key = k elif 'sub' in k: self.fail('logsub should not go into log files') self.assertTrue(filekey) self.assertTrue(log1key) self.assertTrue(log2key) self.assertIn('0234lkjas', r[filekey]) self.assertEqual(len(r[filekey]), os.path.getsize(sys.argv[0])) self.assertEqual(r[log1key], 'Log 1\nbla') self.assertEqual(r[log2key], 'Yet\nanother\nlog') def test_package_hook_tags(self): '''package_hook with extra tags argument.''' ph = subprocess.Popen(['%s/package_hook' % datadir, '-p', 'bash', '-t', 'dist-upgrade, verybad'], stdin=subprocess.PIPE) ph.communicate(b'something is wrong') self.assertEqual(ph.returncode, 0, 'package_hook finished successfully') reps = apport.fileutils.get_new_reports() self.assertEqual(len(reps), 1, 'package_hook created a report') r = apport.Report() with open(reps[0], 'rb') as f: r.load(f) self.assertEqual(r['Tags'], 'dist-upgrade verybad') def test_kernel_crashdump_kexec(self): '''kernel_crashdump using kexec-tools.''' f = open(os.path.join(apport.fileutils.report_dir, 'vmcore'), 'wb') f.write(b'\x01' * 100) f.close() f = open(os.path.join(apport.fileutils.report_dir, 'vmcore.log'), 'w') f.write('vmcore successfully dumped') f.close() self.assertEqual(subprocess.call('%s/kernel_crashdump' % datadir), 0, 'kernel_crashdump finished successfully') reps = apport.fileutils.get_new_reports() self.assertEqual(len(reps), 1, 'kernel_crashdump created a report') r = apport.Report() with open(reps[0], 'rb') as f: r.load(f) self.assertEqual(set(r.keys()), set(['Date', 'Package', 'ProblemType', 'VmCore', 'VmCoreLog', 'Uname', 'Architecture', 'DistroRelease'])) self.assertEqual(r['ProblemType'], 'KernelCrash') self.assertEqual(r['VmCoreLog'], 'vmcore successfully dumped') self.assertEqual(r['VmCore'], b'\x01' * 100) self.assertIn('linux', r['Package']) self.assertIn(os.uname()[2].split('-')[0], r['Package']) def test_kernel_crashdump_kdump(self): '''kernel_crashdump using kdump-tools.''' timedir = datetime.strftime(datetime.now(), '%Y%m%d%H%M') vmcore_dir = os.path.join(apport.fileutils.report_dir, timedir) os.mkdir(vmcore_dir) dmesgfile = os.path.join(vmcore_dir, 'dmesg.' + timedir) f = open(dmesgfile, 'wt') f.write('1' * 100) f.close() self.assertEqual(subprocess.call('%s/kernel_crashdump' % datadir), 0, 'kernel_crashdump finished successfully') reps = apport.fileutils.get_new_reports() self.assertEqual(len(reps), 1, 'kernel_crashdump created a report') r = apport.Report() with open(reps[0], 'rb') as f: r.load(f) self.assertEqual(set(r.keys()), set(['Date', 'Package', 'ProblemType', 'VmCoreDmesg', 'Uname', 'Architecture', 'DistroRelease'])) self.assertEqual(r['ProblemType'], 'KernelCrash') self.assertEqual(r['VmCoreDmesg'], '1' * 100) self.assertIn('linux', r['Package']) self.assertIn(os.uname()[2].split('-')[0], r['Package']) r.add_package_info(r['Package']) self.assertIn(os.uname()[2].split('-')[0], r['Package']) def test_kernel_crashdump_log_symlink(self): '''attempted DoS with vmcore.log symlink We must only accept plain files, otherwise vmcore.log might be a symlink to the .crash file, which would recursively fill itself. ''' f = open(os.path.join(apport.fileutils.report_dir, 'vmcore'), 'wb') f.write(b'\x01' * 100) f.close() os.symlink('vmcore', os.path.join(apport.fileutils.report_dir, 'vmcore.log')) self.assertNotEqual(subprocess.call('%s/kernel_crashdump' % datadir, stderr=subprocess.PIPE), 0, 'kernel_crashdump unexpectedly succeeded') self.assertEqual(apport.fileutils.get_new_reports(), []) def test_kernel_crashdump_kdump_log_symlink(self): '''attempted DoS with dmesg symlink with kdump-tools''' timedir = datetime.strftime(datetime.now(), '%Y%m%d%H%M') vmcore_dir = os.path.join(apport.fileutils.report_dir, timedir) os.mkdir(vmcore_dir) dmesgfile = os.path.join(vmcore_dir, 'dmesg.' + timedir) os.symlink('../kernel.crash', dmesgfile) self.assertNotEqual(subprocess.call('%s/kernel_crashdump' % datadir, stderr=subprocess.PIPE), 0, 'kernel_crashdump unexpectedly succeeded') self.assertEqual(apport.fileutils.get_new_reports(), []) @unittest.skipIf(os.geteuid() != 0, 'this test needs to be run as user') def test_kernel_crashdump_kdump_log_dir_symlink(self): '''attempted DoS with dmesg dir symlink with kdump-tools''' timedir = datetime.strftime(datetime.now(), '%Y%m%d%H%M') vmcore_dir = os.path.join(apport.fileutils.report_dir, timedir) os.mkdir(vmcore_dir + '.real') # pretend that a user tries information disclosure by pre-creating a # symlink to another dir os.symlink(vmcore_dir + '.real', vmcore_dir) os.lchown(vmcore_dir, 65534, 65534) dmesgfile = os.path.join(vmcore_dir, 'dmesg.' + timedir) f = open(dmesgfile, 'wt') f.write('1' * 100) f.close() self.assertNotEqual(subprocess.call('%s/kernel_crashdump' % datadir, stderr=subprocess.PIPE), 0, 'kernel_crashdump unexpectedly succeeded') self.assertEqual(apport.fileutils.get_new_reports(), []) @classmethod def _gcc_version_path(klass): '''Determine a valid version and executable path of gcc and return it as a tuple.''' gcc = subprocess.Popen(['gcc', '--version'], stdout=subprocess.PIPE) out = gcc.communicate()[0].decode() assert gcc.returncode == 0, '"gcc --version" must work for this test suite' ver_fields = out.splitlines()[0].split()[3].split('.') # try major/minor first gcc_ver = '.'.join(ver_fields[:2]) gcc_path = '/usr/bin/gcc-' + gcc_ver if not os.path.exists(gcc_path): # fall back to only major gcc_ver = ver_fields[0] gcc_path = '/usr/bin/gcc-' + gcc_ver gcc = subprocess.Popen([gcc_path, '--version'], stdout=subprocess.PIPE) gcc.communicate() assert gcc.returncode == 0, gcc_path + ' must exist and work for this test suite' return (gcc_ver, gcc_path) def test_gcc_ide_hook_file(self): '''gcc_ice_hook with a temporary file.''' (gcc_version, gcc_path) = self._gcc_version_path() test_source = tempfile.NamedTemporaryFile() test_source.write(b'int f(int x);') test_source.flush() test_source.seek(0) self.assertEqual(subprocess.call(['%s/gcc_ice_hook' % datadir, gcc_path, test_source.name]), 0, 'gcc_ice_hook finished successfully') reps = apport.fileutils.get_new_reports() self.assertEqual(len(reps), 1, 'gcc_ice_hook created a report') r = apport.Report() with open(reps[0], 'rb') as f: r.load(f) self.assertEqual(r['ProblemType'], 'Crash') self.assertEqual(r['ExecutablePath'], gcc_path) self.assertEqual(r['PreprocessedSource'], test_source.read().decode()) r.add_package_info() self.assertEqual(r['Package'].split()[0], 'gcc-' + gcc_version) self.assertNotEqual(r['Package'].split()[1], '') # has package version self.assertIn('libc', r['Dependencies']) def test_gcc_ide_hook_file_binary(self): '''gcc_ice_hook with a temporary file with binary data.''' (gcc_version, gcc_path) = self._gcc_version_path() test_source = tempfile.NamedTemporaryFile() test_source.write(b'int f(int x); \xFF\xFF') test_source.flush() test_source.seek(0) self.assertEqual(subprocess.call(['%s/gcc_ice_hook' % datadir, gcc_path, test_source.name]), 0, 'gcc_ice_hook finished successfully') reps = apport.fileutils.get_new_reports() self.assertEqual(len(reps), 1, 'gcc_ice_hook created a report') r = apport.Report() with open(reps[0], 'rb') as f: r.load(f) self.assertEqual(r['PreprocessedSource'], test_source.read()) def test_gcc_ide_hook_pipe(self): '''gcc_ice_hook with piping.''' (gcc_version, gcc_path) = self._gcc_version_path() test_source = 'int f(int x);' hook = subprocess.Popen(['%s/gcc_ice_hook' % datadir, gcc_path, '-'], stdin=subprocess.PIPE) hook.communicate(test_source.encode()) self.assertEqual(hook.returncode, 0, 'gcc_ice_hook finished successfully') reps = apport.fileutils.get_new_reports() self.assertEqual(len(reps), 1, 'gcc_ice_hook created a report') r = apport.Report() with open(reps[0], 'rb') as f: r.load(f) self.assertEqual(r['ProblemType'], 'Crash') self.assertEqual(r['ExecutablePath'], gcc_path) self.assertEqual(r['PreprocessedSource'], test_source) r.add_package_info() self.assertEqual(r['Package'].split()[0], 'gcc-' + gcc_version) def test_kernel_oops_hook(self): test_source = '''------------[ cut here ]------------ kernel BUG at /tmp/oops.c:5! invalid opcode: 0000 [#1] SMP Modules linked in: oops cpufreq_stats ext2 i915 drm nf_conntrack_ipv4 ipt_REJECT iptable_filter ip_tables nf_conntrack_ipv6 xt_state nf_conntrack xt_tcpudp ip6t_ipv6header ip6t_REJECT ip6table_filter ip6_tables x_tables ipv6 loop dm_multipath rtc_cmos iTCO_wdt iTCO_vendor_support pcspkr i2c_i801 i2c_core battery video ac output power_supply button sg joydev usb_storage dm_snapshot dm_zero dm_mirror dm_mod ahci pata_acpi ata_generic ata_piix libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd ''' hook = subprocess.Popen(['%s/kernel_oops' % datadir], stdin=subprocess.PIPE) hook.communicate(test_source.encode()) self.assertEqual(hook.returncode, 0, 'kernel_oops finished successfully') reps = apport.fileutils.get_new_reports() self.assertEqual(len(reps), 1, 'kernel_oops created a report') r = apport.Report() with open(reps[0], 'rb') as f: r.load(f) self.assertEqual(r['ProblemType'], 'KernelOops') self.assertEqual(r['OopsText'], test_source) self.assertIn('linux', r['Package']) self.assertIn(os.uname()[2].split('-')[0], r['Package']) unittest.main() ������apport-2.20.11/test/test_hookutils.py���������������������������������������������������������������0000664�0000000�0000000�00000052025�14416106601�014466� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# coding: UTF-8 import time import unittest, tempfile, locale, subprocess, re, shutil, os, sys import unittest.mock import apport.hookutils class T(unittest.TestCase): def setUp(self): self.workdir = tempfile.mkdtemp() def tearDown(self): shutil.rmtree(self.workdir) def test_module_license_evaluation(self): '''module licenses can be validated correctly''' def _build_ko(license): asm = tempfile.NamedTemporaryFile(prefix='%s-' % (license), suffix='.S') asm.write(('.section .modinfo\n.string "license=%s"\n' % (license)).encode()) asm.flush() ko = tempfile.NamedTemporaryFile(prefix='%s-' % (license), suffix='.ko') subprocess.call(['/usr/bin/as', asm.name, '-o', ko.name]) return ko good_ko = _build_ko('GPL') bad_ko = _build_ko('BAD') # test: # - unfindable module # - fake GPL module # - fake BAD module # direct license check self.assertEqual(apport.hookutils._get_module_license('does-not-exist'), 'invalid') self.assertTrue('GPL' in apport.hookutils._get_module_license(good_ko.name)) self.assertTrue('BAD' in apport.hookutils._get_module_license(bad_ko.name)) # check via nonfree_kernel_modules logic f = tempfile.NamedTemporaryFile() f.write(('isofs\ndoes-not-exist\n%s\n%s\n' % (good_ko.name, bad_ko.name)).encode()) f.flush() nonfree = apport.hookutils.nonfree_kernel_modules(f.name) self.assertTrue('does-not-exist' in nonfree) self.assertFalse(good_ko.name in nonfree) self.assertTrue(bad_ko.name in nonfree) def test_real_module_license_evaluation(self): '''module licenses can be validated correctly for real module''' isofs_license = apport.hookutils._get_module_license('isofs') if isofs_license == 'invalid': self.skipTest("kernel module 'isofs' not available") self.assertIn("GPL", isofs_license) f = tempfile.NamedTemporaryFile() f.write(b'isofs\n') f.flush() nonfree = apport.hookutils.nonfree_kernel_modules(f.name) self.assertNotIn('isofs', nonfree) def test_attach_dmesg(self): '''attach_dmesg()''' report = {} apport.hookutils.attach_dmesg(report) self.assertTrue(len(report['CurrentDmesg']) > 500) self.assertTrue(report['CurrentDmesg'].startswith('[')) def test_dmesg_overwrite(self): '''attach_dmesg() does not overwrite already existing data''' report = {'CurrentDmesg': 'existingcurrent'} apport.hookutils.attach_dmesg(report) self.assertEqual(report['CurrentDmesg'], 'existingcurrent') def test_attach_file(self): '''attach_file()''' with open('/etc/passwd') as f: passwd_contents = f.read().strip() with open('/etc/issue') as f: issue_contents = f.read().strip() # default key name report = {} apport.hookutils.attach_file(report, '/etc/passwd') self.assertEqual(list(report), ['.etc.passwd']) self.assertEqual(report['.etc.passwd'], passwd_contents) # custom key name report = {} apport.hookutils.attach_file(report, '/etc/passwd', 'Passwd') self.assertEqual(list(report), ['Passwd']) self.assertEqual(report['Passwd'], passwd_contents) # nonexisting file report = {} apport.hookutils.attach_file(report, '/nonexisting') self.assertEqual(list(report), ['.nonexisting']) self.assertTrue(report['.nonexisting'].startswith('Error: ')) # symlink link = os.path.join(self.workdir, 'symlink') os.symlink('/etc/passwd', link) report = {} apport.hookutils.attach_file(report, link, 'Symlink') self.assertEqual(list(report), ['Symlink']) self.assertTrue(report['Symlink'].startswith('Error: ')) # directory symlink link = os.path.join(self.workdir, 'dirsymlink') os.symlink('/etc', link) report = {} apport.hookutils.attach_file(report, os.path.join(link, 'passwd'), 'DirSymlink') self.assertEqual(list(report), ['DirSymlink']) self.assertTrue(report['DirSymlink'].startswith('Error: ')) # directory traversal report = {} apport.hookutils.attach_file(report, '/etc/../etc/passwd', 'Traversal') self.assertEqual(list(report), ['Traversal']) self.assertTrue(report['Traversal'].startswith('Error: ')) # existing key report = {} apport.hookutils.attach_file(report, '/etc/passwd') apport.hookutils.attach_file(report, '/etc/passwd') self.assertEqual(list(report), ['.etc.passwd']) self.assertEqual(report['.etc.passwd'], passwd_contents) apport.hookutils.attach_file(report, '/etc/issue', '.etc.passwd', overwrite=False) self.assertEqual(sorted(report.keys()), ['.etc.passwd', '.etc.passwd_']) self.assertEqual(report['.etc.passwd'], passwd_contents) self.assertEqual(report['.etc.passwd_'], issue_contents) def test_attach_file_binary(self): '''attach_file() for binary files''' myfile = os.path.join(self.workdir, 'data') with open(myfile, 'wb') as f: f.write(b'a\xc3\xb6b\xffx') report = {} apport.hookutils.attach_file(report, myfile, key='data') self.assertEqual(report['data'], b'a\xc3\xb6b\xffx') apport.hookutils.attach_file(report, myfile, key='data', force_unicode=True) self.assertEqual(report['data'], b'a\xc3\xb6b\xef\xbf\xbdx'.decode('UTF-8')) def test_attach_file_if_exists(self): '''attach_file_if_exists()''' with open('/etc/passwd') as f: passwd_contents = f.read().strip() # default key name report = {} apport.hookutils.attach_file_if_exists(report, '/etc/passwd') self.assertEqual(list(report), ['.etc.passwd']) self.assertEqual(report['.etc.passwd'], passwd_contents) # custom key name report = {} apport.hookutils.attach_file_if_exists(report, '/etc/passwd', 'Passwd') self.assertEqual(list(report), ['Passwd']) self.assertEqual(report['Passwd'], passwd_contents) # symlink link = os.path.join(self.workdir, 'symlink') os.symlink('/etc/passwd', link) report = {} apport.hookutils.attach_file_if_exists(report, link, 'Symlink') self.assertEqual(list(report), ['Symlink']) self.assertTrue(report['Symlink'].startswith('Error: ')) # nonexisting file report = {} apport.hookutils.attach_file_if_exists(report, '/nonexisting') self.assertEqual(list(report), []) # directory traversal report = {} apport.hookutils.attach_file_if_exists(report, '/etc/../etc/passwd') self.assertEqual(list(report), []) @unittest.mock.patch("subprocess.Popen") @unittest.mock.patch( "os.path.exists", unittest.mock.MagicMock(return_value=True) ) def test_attach_journal_errors_with_date(self, popen_mock): popen_mock.return_value.returncode = 0 popen_mock.return_value.communicate.return_value = ( b"journalctl output", b"", ) report = apport.Report(date="Wed May 18 18:31:08 2022") apport.hookutils.attach_journal_errors(report) self.assertEqual(popen_mock.call_count, 1) self.assertEqual(report.get("JournalErrors"), "journalctl output") self.assertEqual( popen_mock.call_args[0][0], [ "journalctl", "--priority=warning", f"--since=@{1652898658 + time.altzone}", f"--until=@{1652898678 + time.altzone}", ], ) @unittest.mock.patch("subprocess.Popen") @unittest.mock.patch( "os.path.exists", unittest.mock.MagicMock(return_value=True) ) def test_attach_journal_errors_without_date(self, popen_mock): popen_mock.return_value.returncode = 0 popen_mock.return_value.communicate.return_value = ( b"journalctl output", b"", ) report = apport.Report() del report["Date"] apport.hookutils.attach_journal_errors(report) self.assertEqual(popen_mock.call_count, 1) self.assertEqual(report.get("JournalErrors"), "journalctl output") self.assertEqual( popen_mock.call_args[0][0], ["journalctl", "--priority=warning", "-b", "--lines=1000"], ) def test_path_to_key(self): '''transforming a file path to a valid report key''' self.assertEqual(apport.hookutils.path_to_key('simple.txt'), 'simple.txt') self.assertEqual(apport.hookutils.path_to_key('path/with/dirs.txt'), 'path.with.dirs.txt') self.assertEqual(apport.hookutils.path_to_key('/funny:characters!& ".txt'), '.funny.characters.._..txt') def test_recent_syslog(self): '''recent_syslog''' self.assertEqual(apport.hookutils.recent_syslog(re.compile('.'), path='/nonexisting'), '') self.assertEqual(apport.hookutils.recent_syslog(re.compile('ThisCantPossiblyHitAnything')), '') self.assertNotEqual(len(apport.hookutils.recent_syslog(re.compile('.'))), 0) def test_attach_mac_events(self): '''attach_mac_events()''' denied_log = \ '[ 351.624338] type=1400 audit(1343775571.688:27): apparmor="DENIED"' + \ ' operation="capable" parent=1 profile="/usr/sbin/cupsd" pid=1361' + \ ' comm="cupsd" pid=1361 comm="cupsd" capability=36 capname="block_suspend"\n' denied_hex = \ '[ 351.624338] type=1400 audit(1343775571.688:27): apparmor="DENIED"' + \ ' operation="capable" parent=1 profile=2F7573722F7362696E2F6375707364 pid=1361' + \ ' comm="cupsd" pid=1361 comm="cupsd" capability=36 capname="block_suspend"\n' report = {} apport.hookutils.attach_mac_events(report) self.assertTrue('KernLog' in report) # No AppArmor messages report = {} report['KernLog'] = \ "[ 2.997534] i915 0000:00:02.0: power state changed by ACPI to D0\n" + \ "[ 2.997541] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low)\n" + \ "[ 2.997544] i915 0000:00:02.0: setting latency timer to 64\n" + \ "[ 3.061584] i915 0000:00:02.0: irq 42 for MSI/MSI-X\n" apport.hookutils.attach_mac_events(report) self.assertFalse('Tags' in report) # AppArmor message, but not a denial report = {} report['KernLog'] = \ '[ 32.420248] type=1400 audit(1344562672.449:2): apparmor="STATUS"' + \ ' operation="profile_load" name="/sbin/dhclient" pid=894' + \ ' comm="apparmor_parser"\n' apport.hookutils.attach_mac_events(report) self.assertFalse('Tags' in report) # AppArmor denial, empty tags, no profile specified report = {} report['KernLog'] = denied_log apport.hookutils.attach_mac_events(report) self.assertEqual(report['Tags'], 'apparmor') # AppArmor hex-encoded denial, no profile specified report = {} report['KernLog'] = denied_hex apport.hookutils.attach_mac_events(report) self.assertEqual(report['Tags'], 'apparmor') # AppArmor denial in AuditLog report = {} report['AuditLog'] = denied_log apport.hookutils.attach_mac_events(report) self.assertEqual(report['Tags'], 'apparmor') # AppArmor denial, pre-existing tags, no profile specified report = {} report['KernLog'] = denied_log report['Tags'] = 'bogustag' apport.hookutils.attach_mac_events(report) self.assertEqual(report['Tags'], 'bogustag apparmor') # AppArmor denial, single profile specified report = {} report['KernLog'] = denied_log apport.hookutils.attach_mac_events(report, '/usr/sbin/cupsd') self.assertEqual(report['Tags'], 'apparmor') # AppArmor denial, regex profile specified report = {} report['KernLog'] = denied_log apport.hookutils.attach_mac_events(report, '/usr/sbin/cups.*') self.assertEqual(report['Tags'], 'apparmor') # AppArmor denial, subset profile specified report = {} report['KernLog'] = denied_log apport.hookutils.attach_mac_events(report, '/usr/sbin/cup') self.assertFalse('Tags' in report) # AppArmor hex-encoded denial, single profile specified report = {} report['KernLog'] = denied_hex apport.hookutils.attach_mac_events(report, '/usr/sbin/cupsd') self.assertEqual(report['Tags'], 'apparmor') # AppArmor denial, single different profile specified report = {} report['KernLog'] = denied_log apport.hookutils.attach_mac_events(report, '/usr/sbin/nonexistent') self.assertFalse('Tags' in report) # AppArmor denial, multiple profiles specified report = {} report['KernLog'] = denied_log profiles = ['/usr/bin/nonexistent', '/usr/sbin/cupsd'] apport.hookutils.attach_mac_events(report, profiles) self.assertEqual(report['Tags'], 'apparmor') # AppArmor denial, multiple different profiles report = {} report['KernLog'] = denied_log profiles = ['/usr/bin/nonexistent', '/usr/sbin/anotherone'] apport.hookutils.attach_mac_events(report, profiles) self.assertFalse('Tags' in report) # Multiple AppArmor denials, second match report = {} report['KernLog'] = \ '[ 351.624338] type=1400 audit(1343775571.688:27): apparmor="DENIED"' + \ ' operation="capable" parent=1 profile="/usr/sbin/blah" pid=1361' + \ ' comm="cupsd" pid=1361 comm="cupsd" capability=36 capname="block_suspend"\n' + \ '[ 351.624338] type=1400 audit(1343775571.688:27): apparmor="DENIED"' + \ ' operation="capable" parent=1 profile="/usr/sbin/cupsd" pid=1361' + \ ' comm="cupsd" pid=1361 comm="cupsd" capability=36 capname="block_suspend"\n' apport.hookutils.attach_mac_events(report, '/usr/sbin/cupsd') self.assertEqual(report['Tags'], 'apparmor') def test_recent_syslog_overflow(self): '''recent_syslog on a huge file''' log = os.path.join(self.workdir, 'syslog') with open(log, 'w') as f: lines = 1000000 while lines >= 0: f.write('Apr 20 11:30:00 komputer kernel: bogus message\n') lines -= 1 mem_before = self._get_mem_usage() data = apport.hookutils.recent_syslog(re.compile('kernel'), path=log) mem_after = self._get_mem_usage() delta_kb = mem_after - mem_before sys.stderr.write('[Δ %i kB] ' % delta_kb) self.assertLess(delta_kb, 5000) self.assertTrue(data.startswith('Apr 20 11:30:00 komputer kernel: bogus message\n')) self.assertGreater(len(data), 100000) self.assertLess(len(data), 1000000) @unittest.skipIf(apport.hookutils.apport.hookutils.in_session_of_problem(apport.Report()) is None, 'no logind session') def test_in_session_of_problem(self): '''in_session_of_problem()''' old_ctime = locale.getlocale(locale.LC_TIME) locale.setlocale(locale.LC_TIME, 'C') report = {'Date': 'Sat Jan 1 12:00:00 2011'} self.assertFalse(apport.hookutils.in_session_of_problem(report)) report = {'Date': 'Mon Oct 10 21:06:03 2009'} self.assertFalse(apport.hookutils.in_session_of_problem(report)) report = {'Date': 'Tue Jan 1 12:00:00 2038'} self.assertTrue(apport.hookutils.in_session_of_problem(report)) locale.setlocale(locale.LC_TIME, '') report = {'Date': 'Sat Jan 1 12:00:00 2011'} self.assertFalse(apport.hookutils.in_session_of_problem(report)) report = {'Date': 'Mon Oct 10 21:06:03 2009'} self.assertFalse(apport.hookutils.in_session_of_problem(report)) report = apport.Report() self.assertTrue(apport.hookutils.in_session_of_problem(report)) self.assertEqual(apport.hookutils.in_session_of_problem({}), None) locale.setlocale(locale.LC_TIME, old_ctime) def test_xsession_errors(self): '''xsession_errors()''' with open(os.path.join(self.workdir, '.xsession-errors'), 'w', encoding='UTF-8') as f: f.write('''Loading profile from /etc/profile gnome-session[1948]: WARNING: standard glib warning EggSMClient-CRITICAL **: egg_sm_client_set_mode: standard glib assertion 24/02/2012 11:14:46 Sending credentials s3kr1t ** WARNING **: nonstandard warning WARN 2012-02-24 11:23:47 unity <unknown>:0 some unicode ♥ ♪ GNOME_KEYRING_CONTROL=/tmp/keyring-u7hrD6 (gnome-settings-daemon:5115): Gdk-WARNING **: The program 'gnome-settings-daemon' received an X Window System error. This probably reflects a bug in the program. The error was 'BadMatch (invalid parameter attributes)'. (Details: serial 723 error_code 8 request_code 143 minor_code 22) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.)" GdkPixbuf-CRITICAL **: gdk_pixbuf_scale_simple: another standard glib assertion ''') orig_home = os.environ.get('HOME') try: os.environ['HOME'] = self.workdir # explicit pattern pattern = re.compile('notfound') self.assertEqual(apport.hookutils.xsession_errors(pattern), '') pattern = re.compile(r'^\w+-CRITICAL') res = apport.hookutils.xsession_errors(pattern).splitlines() self.assertEqual(len(res), 2) self.assertTrue(res[0].startswith('EggSMClient-CRITICAL')) self.assertTrue(res[1].startswith('GdkPixbuf-CRITICAL')) # default pattern includes glib assertions and X Errors res = apport.hookutils.xsession_errors() self.assertFalse('nonstandard warning' in res) self.assertFalse('keyring' in res) self.assertFalse('credentials' in res) self.assertTrue('WARNING: standard glib warning' in res, res) self.assertTrue('GdkPixbuf-CRITICAL' in res, res) self.assertTrue("'gnome-settings-daemon' received an X Window" in res, res) self.assertTrue('BadMatch' in res, res) self.assertTrue('serial 723' in res, res) finally: if orig_home is not None: os.environ['HOME'] = orig_home else: os.unsetenv('HOME') def test_no_crashes(self): '''functions do not crash (very shallow)''' report = {} apport.hookutils.attach_hardware(report) apport.hookutils.attach_alsa(report) apport.hookutils.attach_network(report) apport.hookutils.attach_wifi(report) apport.hookutils.attach_printing(report) apport.hookutils.attach_conffiles(report, 'bash') apport.hookutils.attach_conffiles(report, 'apport') apport.hookutils.attach_conffiles(report, 'nonexisting') apport.hookutils.attach_upstart_overrides(report, 'apport') apport.hookutils.attach_upstart_overrides(report, 'nonexisting') apport.hookutils.attach_upstart_logs(report, 'apport') apport.hookutils.attach_upstart_logs(report, 'nonexisting') apport.hookutils.attach_default_grub(report) def test_command_output(self): orig_lcm = os.environ.get('LC_MESSAGES') os.environ['LC_MESSAGES'] = 'en_US.UTF-8' try: # default mode: disable translations out = apport.hookutils.command_output(['env']) self.assertTrue('LC_MESSAGES=C' in out) # keep locale out = apport.hookutils.command_output(['env'], keep_locale=True) self.assertFalse('LC_MESSAGES=C' in out, out) finally: if orig_lcm is not None: os.environ['LC_MESSAGES'] = orig_lcm else: os.unsetenv('LC_MESSAGES') # nonexisting binary out = apport.hookutils.command_output(['/non existing']) self.assertTrue(out.startswith('Error: [Errno 2]')) # stdin out = apport.hookutils.command_output(['cat'], input=b'hello') self.assertEqual(out, 'hello') @classmethod def _get_mem_usage(klass): '''Get current memory usage in kB''' with open('/proc/self/status') as f: for line in f: if line.startswith('VmSize:'): return int(line.split()[1]) else: raise SystemError('did not find VmSize: in /proc/self/status') unittest.main() �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_java_crashes.py������������������������������������������������������������0000664�0000000�0000000�00000007514�14416106601�015101� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2010 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import tempfile, unittest, subprocess, sys, os, os.path, shutil import apport, apport.fileutils class T(unittest.TestCase): def setUp(self): mydir = os.path.dirname(os.path.realpath(sys.argv[0])) datadir = os.environ.get('APPORT_DATA_DIR', '/usr/share/apport') self.srcdir = os.path.dirname(mydir) self.orig_report_dir = apport.fileutils.report_dir apport.fileutils.report_dir = tempfile.mkdtemp() os.environ['APPORT_REPORT_DIR'] = apport.fileutils.report_dir os.environ['APPORT_JAVA_EXCEPTION_HANDLER'] = os.path.join( datadir, 'java_uncaught_exception') if os.environ.get('APPORT_TEST_LOCAL'): self.crash_jar_path = os.path.join(self.srcdir, 'java', 'crash.jar') self.apport_jar_path = os.path.join(self.srcdir, 'java', 'apport.jar') else: self.crash_jar_path = os.path.join(mydir, 'crash.jar') self.apport_jar_path = os.path.join(datadir, 'apport.jar') def tearDown(self): shutil.rmtree(apport.fileutils.report_dir) apport.fileutils.report_dir = self.orig_report_dir def test_crash_class(self): '''Crash in a .class file''' p = subprocess.Popen(['java', '-classpath', self.apport_jar_path + ':' + os.path.dirname(self.crash_jar_path), 'crash'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = p.communicate() self.assertNotEqual(p.returncode, 0, 'crash must exit with nonzero code') self.assertTrue(b"Can't catch this" in err, 'crash handler must print original exception:\n' + err.decode()) self._check_crash_report(os.path.dirname(self.crash_jar_path) + '/crash.class') def test_crash_jar(self): '''Crash in a .jar file''' p = subprocess.Popen(['java', '-classpath', self.apport_jar_path + ':' + self.crash_jar_path, 'crash'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = p.communicate() self.assertNotEqual(p.returncode, 0, 'crash must exit with nonzero code') self.assertTrue(b"Can't catch this" in err, 'crash handler must print original exception:\n' + err.decode()) self._check_crash_report(self.crash_jar_path + '!/crash.class') def _check_crash_report(self, main_file): '''Check that we have one crash report, and verify its contents''' reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 1, 'did not create a crash report') r = apport.Report() with open(reports[0], 'rb') as f: r.load(f) self.assertEqual(r['ProblemType'], 'Crash') self.assertTrue(r['ProcCmdline'].startswith('java -classpath'), r) self.assertTrue(r['StackTrace'].startswith( "java.lang.RuntimeException: Can't catch this")) if '.jar!' in main_file: self.assertEqual(r['MainClassUrl'], 'jar:file:' + main_file) else: self.assertEqual(r['MainClassUrl'], 'file:' + main_file) self.assertTrue('DistroRelease' in r) self.assertTrue('ProcCwd' in r) # # main # try: subprocess.check_call(['java', '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) except OSError: apport.warning('Java not available, skipping') sys.exit(0) unittest.main() ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_packaging.py���������������������������������������������������������������0000664�0000000�0000000�00000001572�14416105132�014370� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������import unittest import apport class T(unittest.TestCase): def test_get_uninstalled_package(self): '''get_uninstalled_package()''' p = apport.packaging.get_uninstalled_package() self.assertNotEqual(p, None) self.assertNotEqual(apport.packaging.get_available_version(p), '') self.assertRaises(ValueError, apport.packaging.get_version, p) self.assertTrue(apport.packaging.is_distro_package(p)) def test_get_os_version(self): '''get_os_version()''' (n, v) = apport.packaging.get_os_version() self.assertEqual(type(n), str) self.assertEqual(type(v), str) self.assertGreater(len(n), 1) self.assertGreater(len(v), 0) # second one uses caching, should be identical (n2, v2) = apport.packaging.get_os_version() self.assertEqual((n, v), (n2, v2)) unittest.main() ��������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_parse_segv.py��������������������������������������������������������������0000664�0000000�0000000�00000060567�14416105132�014613� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������import unittest, tempfile, sys, os.path datadir = os.environ.get('APPORT_DATA_DIR', '/usr/share/apport') sys.path.insert(0, os.path.join(datadir, 'general-hooks')) import parse_segv # Default global registers, maps, and disassembly for testing regs = '''eax 0xffffffff -1 ecx 0xbfc6af40 -1077498048 edx 0x1 1 ebx 0x26eff4 2551796 esp 0xbfc6af24 0xbfc6af24 ebp 0xbfc6af28 0xbfc6af28 esi 0x826bb60 136756064 edi 0x8083480 134755456 eip 0x808354e 0x808354e <main+14> eflags 0x200286 [ PF SF IF ID ] cs 0x73 115 ss 0x7b 123 ds 0x7b 123 es 0x7b 123 fs 0x4 4 gs 0x33 51 ''' regs64 = '''rax 0xffffffffffffffff -1 rbx 0x26eff4 2551796 rcx 0xffffffffffffffff -1 rdx 0xffffffffff600180 -10485376 rsi 0x0 0 rdi 0x7fffffffe3b0 140737488348080 rbp 0x0 0x0 rsp 0x0000bfc6af24 0x0000bfc6af24 r8 0x0 0 r9 0x0 0 r10 0x7fffffffe140 140737488347456 r11 0x246 582 r12 0x7fffffffe400 140737488348160 r13 0x7fffffffe468 140737488348264 r14 0x1 1 r15 0x7fffffffe460 140737488348256 rip 0x7ffff790be10 0x7ffff790be10 <nanosleep+16> eflags 0x246 [ PF ZF IF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 fctrl 0x37f 895 fstat 0x0 0 ftag 0xffff 65535 fiseg 0x0 0 fioff 0x40303a 4206650 foseg 0x0 0 fooff 0x0 0 fop 0x5d8 1496 mxcsr 0x1f80 [ IM DM ZM OM UM PM ] ''' maps = '''00110000-0026c000 r-xp 00000000 08:06 375131 /lib/tls/i686/cmov/libc-2.9.so 0026c000-0026d000 ---p 0015c000 08:06 375131 /lib/tls/i686/cmov/libc-2.9.so 0026d000-0026f000 r--p 0015c000 08:06 375131 /lib/tls/i686/cmov/libc-2.9.so 0026f000-00270000 rw-p 0015e000 08:06 375131 /lib/tls/i686/cmov/libc-2.9.so 00270000-00273000 rw-p 00000000 00:00 0 002c1000-002e5000 r-xp 00000000 08:06 375135 /lib/tls/i686/cmov/libm-2.9.so 002e5000-002e6000 r--p 00023000 08:06 375135 /lib/tls/i686/cmov/libm-2.9.so 002e6000-002e7000 rw-p 00024000 08:06 375135 /lib/tls/i686/cmov/libm-2.9.so 00318000-00334000 r-xp 00000000 08:06 977846 /lib/ld-2.9.so 00334000-00335000 r--p 0001b000 08:06 977846 /lib/ld-2.9.so 00335000-00336000 rw-p 0001c000 08:06 977846 /lib/ld-2.9.so 0056e000-005a1000 r-xp 00000000 08:06 65575 /lib/libncurses.so.5.7 005a1000-005a3000 r--p 00033000 08:06 65575 /lib/libncurses.so.5.7 005a3000-005a4000 rw-p 00035000 08:06 65575 /lib/libncurses.so.5.7 00b67000-00b68000 r-xp 00000000 00:00 0 [vdso] 00bb6000-00bcb000 r-xp 00000000 08:06 375202 /lib/tls/i686/cmov/libpthread-2.9.so 00bcb000-00bcc000 r--p 00014000 08:06 375202 /lib/tls/i686/cmov/libpthread-2.9.so 00bcc000-00bcd000 rw-p 00015000 08:06 375202 /lib/tls/i686/cmov/libpthread-2.9.so 00bcd000-00bcf000 rw-p 00000000 00:00 0 00beb000-00bed000 r-xp 00000000 08:06 375134 /lib/tls/i686/cmov/libdl-2.9.so 00bed000-00bee000 r--p 00001000 08:06 375134 /lib/tls/i686/cmov/libdl-2.9.so 00bee000-00bef000 rw-p 00002000 08:06 375134 /lib/tls/i686/cmov/libdl-2.9.so 00c56000-00c7a000 r-xp 00000000 08:06 1140420 /usr/lib/libexpat.so.1.5.2 00c7a000-00c7c000 r--p 00023000 08:06 1140420 /usr/lib/libexpat.so.1.5.2 00c7c000-00c7d000 rw-p 00025000 08:06 1140420 /usr/lib/libexpat.so.1.5.2 00dce000-00dfa000 r-xp 00000000 08:06 65612 /lib/libreadline.so.5.2 00dfa000-00dfb000 ---p 0002c000 08:06 65612 /lib/libreadline.so.5.2 00dfb000-00dfc000 r--p 0002c000 08:06 65612 /lib/libreadline.so.5.2 00dfc000-00dff000 rw-p 0002d000 08:06 65612 /lib/libreadline.so.5.2 00dff000-00e00000 rw-p 00000000 00:00 0 08048000-0831c000 r-xp 00000000 08:06 1140349 /usr/bin/gdb 0831c000-0831d000 r--p 002d3000 08:06 1140349 /usr/bin/gdb 0831d000-08325000 rw-p 002d4000 08:06 1140349 /usr/bin/gdb 08325000-0833f000 rw-p 00000000 00:00 0 b8077000-b807a000 rw-p 00000000 00:00 0 b8096000-b8098000 rw-p 00000000 00:00 0 bfc57000-bfc6c000 rw-p 00000000 00:00 0 [stack] ''' disasm = '''0x08083540 <main+0>: lea 0x4(%esp),%ecx 0x08083544 <main+4>: and $0xfffffff0,%esp 0x08083547 <main+7>: pushl -0x4(%ecx) 0x0808354a <main+10>: push %ebp 0x0808354b <main+11>: mov %esp,%ebp 0x0808354d <main+13>: push %ecx 0x0808354e <main+14>: sub $0x14,%esp 0x08083551 <main+17>: mov (%ecx),%eax 0x08083553 <main+19>: mov 0x4(%ecx),%edx 0x08083556 <main+22>: lea -0x14(%ebp),%ecx 0x08083559 <main+25>: movl $0x0,-0xc(%ebp) 0x08083560 <main+32>: movl $0x826bc68,-0x8(%ebp) 0x08083567 <main+39>: mov %eax,-0x14(%ebp) 0x0808356a <main+42>: mov %edx,-0x10(%ebp) 0x0808356d <main+45>: mov %ecx,(%esp) 0x08083570 <main+48>: call 0x8083580 <gdb_main> 0x08083575 <main+53>: add $0x14,%esp 0x08083578 <main+56>: pop %ecx 0x08083579 <main+57>: pop %ebp 0x0808357a <main+58>: lea -0x4(%ecx),%esp 0x0808357d <main+61>: ret ''' class T(unittest.TestCase): '''Test Segfault Parser''' def test_invalid_00_registers(self): '''Require valid registers''' regs = 'a 0x10\nb !!!\n' self.assertRaises(ValueError, parse_segv.ParseSegv, regs, '', '') try: segv = parse_segv.ParseSegv(regs, '', '') except ValueError as e: self.assertTrue('invalid literal for int()' in str(e), str(e)) regs = 'a 0x10' disasm = '0x08083540 <main+0>: lea 0x4(%esp),%ecx\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.regs['a'], 0x10, segv) segv.regs = None self.assertRaises(ValueError, segv.parse_disassembly, '') def test_invalid_01_disassembly(self): '''Require valid disassembly''' regs = 'a 0x10' disasm = '' self.assertRaises(ValueError, parse_segv.ParseSegv, regs, disasm, '') disasm = 'Dump ...' self.assertRaises(ValueError, parse_segv.ParseSegv, regs, disasm, '') disasm = 'Dump ...\nmonkey' self.assertRaises(ValueError, parse_segv.ParseSegv, regs, disasm, '') disasm = 'monkey' self.assertRaises(ValueError, parse_segv.ParseSegv, regs, disasm, '') disasm = '0x1111111111: Cannot access memory at address 0x1111111111\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0x1111111111, segv.pc) self.assertEqual(segv.insn, None, segv.insn) self.assertEqual(segv.src, None, segv.src) self.assertEqual(segv.dest, None, segv.dest) disasm = '0x2111111111: \n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0x2111111111, segv.pc) self.assertEqual(segv.insn, None, segv.insn) self.assertEqual(segv.src, None, segv.src) self.assertEqual(segv.dest, None, segv.dest) disasm = '0x8069ff0 <fopen@plt+132220>: cmpb $0x0,(%eax,%ebx,1)\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0x8069ff0, segv.pc) self.assertEqual(segv.insn, 'cmpb', segv.insn) self.assertEqual(segv.src, '$0x0', segv.src) self.assertEqual(segv.dest, '(%eax,%ebx,1)', segv.dest) disasm = '0xb765bb48 <_XSend+440>: call *0x40(%edi)\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0xb765bb48, segv.pc) self.assertEqual(segv.insn, 'call', segv.insn) self.assertEqual(segv.src, '*0x40(%edi)', segv.src) self.assertEqual(segv.dest, None, segv.dest) disasm = '0xb7aae5a0: call 0xb7a805af <_Unwind_Find_FDE@plt+111>\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0xb7aae5a0, segv.pc) self.assertEqual(segv.insn, 'call', segv.insn) self.assertEqual(segv.src, '0xb7a805af', segv.src) self.assertEqual(segv.dest, None, segv.dest) disasm = '0x09083540: mov 0x4(%esp),%es:%ecx\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0x09083540, segv.pc) self.assertEqual(segv.insn, 'mov', segv.insn) self.assertEqual(segv.src, '0x4(%esp)', segv.src) self.assertEqual(segv.dest, '%es:%ecx', segv.dest) disasm = '0x08083540 <main+0>: lea 0x4(%esp),%ecx\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0x08083540, segv.pc) self.assertEqual(segv.insn, 'lea', segv.insn) self.assertEqual(segv.src, '0x4(%esp)', segv.src) self.assertEqual(segv.dest, '%ecx', segv.dest) disasm = '''0x404127 <exo_mount_hal_device_mount+167>: repz cmpsb %es:(%rdi),%ds:(%rsi)\n''' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0x0404127, segv.pc) self.assertEqual(segv.insn, 'repz cmpsb', segv.insn) self.assertEqual(segv.src, '%es:(%rdi)', segv.src) self.assertEqual(segv.dest, '%ds:(%rsi)', segv.dest) disasm = '0xb031765a <hufftab16+570>: add 0x3430433,%eax' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0xb031765a, segv.pc) self.assertEqual(segv.insn, 'add', segv.insn) self.assertEqual(segv.src, '0x3430433', segv.src) self.assertEqual(segv.dest, '%eax', segv.dest) disasm = 'Dump ...\n0x08083540 <main+0>: lea 0x4(%esp),%ecx\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0x08083540, segv.pc) self.assertEqual(segv.insn, 'lea', segv.insn) self.assertEqual(segv.src, '0x4(%esp)', segv.src) self.assertEqual(segv.dest, '%ecx', segv.dest) disasm = '0x08083550 <main+0>: nop\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0x08083550, segv.pc) self.assertEqual(segv.insn, 'nop', segv.insn) self.assertEqual(segv.src, None, segv.src) self.assertEqual(segv.dest, None, segv.dest) regs = 'esp 0x444' disasm = '0x08083560 <main+0>: push %ecx\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0x08083560, segv.pc) self.assertEqual(segv.insn, 'push', segv.insn) self.assertEqual(segv.src, '%ecx', segv.src) self.assertEqual(segv.dest, '(%esp)', segv.dest) # GDB 7.1 regs = 'esp 0x444' disasm = '=> 0x08083560 <main+0>: push %ecx\n' segv = parse_segv.ParseSegv(regs, disasm, '') self.assertEqual(segv.pc, 0x08083560, segv.pc) self.assertEqual(segv.insn, 'push', segv.insn) self.assertEqual(segv.src, '%ecx', segv.src) self.assertEqual(segv.dest, '(%esp)', segv.dest) def test_ioport_operation(self): '''I/O port violations''' regs = 'rax 0x3 3' disasm = '''0x4087f1 <snd_pcm_hw_params_set_channels_near@plt+19345>: out %al,$0xb3 ''' maps = '''00400000-00412000 r-xp 00000000 08:04 10371157 /usr/sbin/pommed 00611000-00614000 rw-p 00011000 08:04 10371157 /usr/sbin/pommed 00614000-00635000 rw-p 00614000 00:00 0 [heap] ''' segv = parse_segv.ParseSegv(regs, disasm, maps) self.assertEqual(segv.pc, 0x4087f1, segv.pc) self.assertEqual(segv.insn, 'out', segv.insn) self.assertEqual(segv.src, '%al', segv.src) self.assertEqual(segv.dest, '$0xb3', segv.dest) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('disallowed I/O port operation on port 3' in reason, reason) def test_invalid_02_maps(self): '''Require valid maps''' regs = 'a 0x10' disasm = 'Dump ...\n0x08083540 <main+0>: lea 0x4(%esp),%ecx\n' maps = 'asdlkfjaadf' self.assertRaises(ValueError, parse_segv.ParseSegv, regs, disasm, maps) maps = '''005a3000-005a4000 rw-p 00035000 08:06 65575 /lib/libncurses.so.5.7 00b67000-00b68000 r-xp 00000000 00:00 0 [vdso] 00c67000-00c68000 r--p 00000000 00:00 0 ''' segv = parse_segv.ParseSegv(regs, disasm, maps) self.assertEqual(segv.maps[0]['start'], 0x005a3000, segv) self.assertEqual(segv.maps[0]['end'], 0x005a4000, segv) self.assertEqual(segv.maps[0]['perms'], 'rw-p', segv) self.assertEqual(segv.maps[0]['name'], '/lib/libncurses.so.5.7', segv) self.assertEqual(segv.maps[1]['start'], 0x00b67000, segv) self.assertEqual(segv.maps[1]['end'], 0x00b68000, segv) self.assertEqual(segv.maps[1]['perms'], 'r-xp', segv) self.assertEqual(segv.maps[1]['name'], '[vdso]', segv) self.assertEqual(segv.maps[2]['start'], 0x00c67000, segv) self.assertEqual(segv.maps[2]['end'], 0x00c68000, segv) self.assertEqual(segv.maps[2]['perms'], 'r--p', segv) self.assertEqual(segv.maps[2]['name'], None, segv) def test_debug(self): '''Debug mode works''' regs = 'a 0x10' disasm = 'Dump ...\n0x08083540 <main+0>: lea 0x4(%esp),%ecx\n' maps = '''005a3000-005a4000 rw-p 00035000 08:06 65575 /lib/libncurses.so.5.7 00b67000-00b68000 r-xp 00000000 00:00 0 [vdso] 00c67000-00c68000 r--p 00000000 00:00 0 ''' sys.stderr = tempfile.NamedTemporaryFile(prefix='parse_segv-stderr-') segv = parse_segv.ParseSegv(regs, disasm, maps, debug=True) self.assertTrue(segv is not None, segv) def test_register_values(self): '''Sub-register parsing''' disasm = '''0x08083540 <main+0>: mov $1,%ecx''' segv = parse_segv.ParseSegv(regs64, disasm, '') val = segv.register_value('%rdx') self.assertEqual(val, 0xffffffffff600180, hex(val)) val = segv.register_value('%edx') self.assertEqual(val, 0xff600180, hex(val)) val = segv.register_value('%dx') self.assertEqual(val, 0x0180, hex(val)) val = segv.register_value('%dl') self.assertEqual(val, 0x80, hex(val)) def test_segv_unknown(self): '''Handles unknown segfaults''' disasm = '''0x08083540 <main+0>: mov $1,%ecx''' segv = parse_segv.ParseSegv(regs, disasm, maps) understood, reason, details = segv.report() self.assertFalse(understood, details) # Verify calculations self.assertEqual(segv.calculate_arg('(%ecx)'), 0xbfc6af40, segv.regs['ecx']) self.assertEqual(segv.calculate_arg('0x10(%ecx)'), 0xbfc6af50, segv.regs['ecx']) self.assertEqual(segv.calculate_arg('-0x20(%ecx)'), 0xbfc6af20, segv.regs['ecx']) self.assertEqual(segv.calculate_arg('%fs:(%ecx)'), 0xbfc6af44, segv.regs['ecx']) self.assertEqual(segv.calculate_arg('0x3404403'), 0x3404403, '0x3404403') self.assertEqual(segv.calculate_arg('*0x40(%edi)'), 0x80834c0, segv.regs['edi']) self.assertEqual(segv.calculate_arg('(%edx,%ebx,1)'), 0x26eff5, segv.regs['ebx']) self.assertEqual(segv.calculate_arg('(%eax,%ebx,1)'), 0x26eff3, segv.regs['ebx']) self.assertEqual(segv.calculate_arg('0x10(,%ebx,1)'), 0x26f004, segv.regs['ebx']) # Again, but 64bit disasm = '''0x08083540 <main+0>: mov $1,%rcx''' segv = parse_segv.ParseSegv(regs64, disasm, maps) understood, reason, details = segv.report() self.assertFalse(understood, details) self.assertEqual(segv.calculate_arg('(%rax,%rbx,1)'), 0x26eff3, segv.regs['rbx']) def test_segv_pc_missing(self): '''Handles PC in missing VMA''' disasm = '''0x00083540 <main+0>: lea 0x4(%esp),%ecx''' segv = parse_segv.ParseSegv(regs, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('PC (0x00083540) not located in a known VMA region' in details, details) self.assertTrue('executing unknown VMA' in reason, reason) disasm = '''0x00083544:''' segv = parse_segv.ParseSegv(regs, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('PC (0x00083544) not located in a known VMA region' in details, details) self.assertTrue('executing unknown VMA' in reason, reason) def test_segv_pc_null(self): '''Handles PC in NULL VMA''' disasm = '''0x00000540 <main+0>: lea 0x4(%esp),%ecx''' segv = parse_segv.ParseSegv(regs, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('PC (0x00000540) not located in a known VMA region' in details, details) self.assertTrue('executing NULL VMA' in reason, reason) def test_segv_pc_nx_writable(self): '''Handles PC in writable NX VMA''' disasm = '''0x005a3000 <main+0>: lea 0x4(%esp),%ecx''' segv = parse_segv.ParseSegv(regs, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('PC (0x005a3000) in non-executable VMA region:' in details, details) self.assertTrue('executing writable VMA /lib/libncurses.so.5.7' in reason, reason) def test_segv_pc_nx_unwritable(self): '''Handles PC in non-writable NX VMA''' disasm = '''0x00dfb000 <main+0>: lea 0x4(%esp),%ecx''' segv = parse_segv.ParseSegv(regs, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('PC (0x00dfb000) in non-executable VMA region:' in details, details) self.assertTrue('executing non-writable VMA /lib/libreadline.so.5.2' in reason, reason) def test_segv_src_missing(self): '''Handles source in missing VMA''' reg = regs + 'ecx 0x0006af24 0xbfc6af24' disasm = '0x08083547 <main+7>: pushl -0x4(%ecx)' # Valid crash segv = parse_segv.ParseSegv(reg, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('source "-0x4(%ecx)" (0x0006af20) not located in a known VMA region' in details, details) self.assertTrue('reading unknown VMA' in reason, reason) # Valid crash disasm = '0x08083547 <main+7>: callq *%ecx' segv = parse_segv.ParseSegv(reg, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('source "*%ecx" (0x0006af24) not located in a known VMA region' in details, details) self.assertTrue('reading unknown VMA' in reason, reason) def test_segv_src_null(self): '''Handles source in NULL VMA''' reg = regs + 'ecx 0x00000024 0xbfc6af24' disasm = '0x08083547 <main+7>: pushl -0x4(%ecx)' segv = parse_segv.ParseSegv(reg, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('source "-0x4(%ecx)" (0x00000020) not located in a known VMA region' in details, details) self.assertTrue('reading NULL VMA' in reason, reason) def test_segv_src_not_readable(self): '''Handles source not in readable VMA''' reg = regs + 'ecx 0x0026c080 0xbfc6af24' disasm = '0x08083547 <main+7>: pushl -0x4(%ecx)' segv = parse_segv.ParseSegv(reg, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('source "-0x4(%ecx)" (0x0026c07c) in non-readable VMA region:' in details, details) self.assertTrue('reading VMA /lib/tls/i686/cmov/libc-2.9.so' in reason, reason) self.assertFalse('Stack memory exhausted' in details, details) self.assertFalse('Stack pointer not within stack segment' in details, details) def test_segv_dest_missing(self): '''Handles destintation in missing VMA''' reg = regs + 'esp 0x0006af24 0xbfc6af24' disasm = '0x08083547 <main+7>: pushl -0x4(%ecx)' segv = parse_segv.ParseSegv(reg, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('destination "(%esp)" (0x0006af24) not located in a known VMA region' in details, details) self.assertTrue('writing unknown VMA' in reason, reason) def test_segv_dest_null(self): '''Handles destintation in NULL VMA''' reg = regs + 'esp 0x00000024 0xbfc6af24' disasm = '0x08083547 <main+7>: pushl -0x4(%ecx)' segv = parse_segv.ParseSegv(reg, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('destination "(%esp)" (0x00000024) not located in a known VMA region' in details, details) self.assertTrue('writing NULL VMA' in reason, reason) def test_segv_dest_not_writable(self): '''Handles destination not in writable VMA''' reg = regs + 'esp 0x08048080 0xbfc6af24' disasm = '0x08083547 <main+7>: pushl -0x4(%ecx)' segv = parse_segv.ParseSegv(reg, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('destination "(%esp)" (0x08048080) in non-writable VMA region:' in details, details) self.assertTrue('writing VMA /usr/bin/gdb' in reason, reason) def test_segv_crackful_disasm(self): '''Rejects insane disassemblies''' disasm = '0x08083547 <main+7>: pushl -0x4(blah)' segv = parse_segv.ParseSegv(regs, disasm, maps) self.assertRaises(ValueError, segv.report) disasm = '0x08083547 <main+7>: pushl -04(%ecx)' segv = parse_segv.ParseSegv(regs, disasm, maps) self.assertRaises(ValueError, segv.report) def test_segv_stack_failure(self): '''Handles walking off the stack''' # Triggered via "push" reg = regs + 'esp 0xbfc56ff0 0xbfc56ff0' disasm = '0x08083547 <main+7>: push %eax' segv = parse_segv.ParseSegv(reg, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('destination "(%esp)" (0xbfc56ff0) not located in a known VMA region (needed writable region)!' in details, details) # Triggered via "call" reg = regs + 'esp 0xbfc56fff 0xbfc56fff' disasm = '0x08083547 <main+7>: callq 0x08083540' segv = parse_segv.ParseSegv(reg, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('destination "(%esp)" (0xbfc56fff) not located in a known VMA region (needed writable region)!' in details, details) self.assertTrue('Stack memory exhausted' in details, details) # Triggered via unknown reason reg = regs + 'esp 0xdfc56000 0xdfc56000' disasm = '''0x08083540 <main+0>: mov $1,%rcx''' segv = parse_segv.ParseSegv(reg, disasm, maps) understood, reason, details = segv.report() self.assertTrue(understood, details) self.assertTrue('SP (0xdfc56000) not located in a known VMA region (needed readable region)!' in details, details) self.assertTrue('Stack pointer not within stack segment' in details, details) def test_segv_stack_kernel_segfault(self): '''Handles unknown segfaults in kernel''' # Crash in valid code path disasm = '''0x0056e010: ret''' segv = parse_segv.ParseSegv(regs, disasm, maps) understood, reason, details = segv.report() self.assertFalse(understood, details) self.assertTrue('Reason could not be automatically determined.' in details, details) self.assertFalse('(Unhandled exception in kernel code?)' in details, details) # Crash from kernel code path disasm = '''0x00b67422 <__kernel_vsyscall+2>: ret''' segv = parse_segv.ParseSegv(regs, disasm, maps) understood, reason, details = segv.report() self.assertFalse(understood, details) self.assertTrue('Reason could not be automatically determined. (Unhandled exception in kernel code?)' in details, details) unittest.main() �����������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_problem_report.py����������������������������������������������������������0000664�0000000�0000000�00000106670�14416106601�015506� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# vim: set encoding=UTF-8 fileencoding=UTF-8 : import unittest, tempfile, os, shutil, email, gzip, time, sys import locale from io import BytesIO import problem_report bin_data = b'ABABABABAB\0\0\0Z\x01\x02' if sys.version < '3': # backwards compatibility shim email.message_from_binary_file = email.message_from_file class T(unittest.TestCase): @classmethod def setUp(self): self.workdir = tempfile.mkdtemp() @classmethod def tearDown(self): shutil.rmtree(self.workdir) def test_basic_operations(self): '''basic creation and operation.''' pr = problem_report.ProblemReport() pr['foo'] = 'bar' pr['bar'] = ' foo bar\nbaz\n blip ' pr['dash-key'] = '1' pr['dot.key'] = '1' pr['underscore_key'] = '1' self.assertEqual(pr['foo'], 'bar') self.assertEqual(pr['bar'], ' foo bar\nbaz\n blip ') self.assertEqual(pr['ProblemType'], 'Crash') self.assertTrue(time.strptime(pr['Date'])) self.assertEqual(pr['dash-key'], '1') self.assertEqual(pr['dot.key'], '1') self.assertEqual(pr['underscore_key'], '1') def test_ctor_arguments(self): '''non-default constructor arguments.''' pr = problem_report.ProblemReport('KernelCrash') self.assertEqual(pr['ProblemType'], 'KernelCrash') pr = problem_report.ProblemReport(date='19801224 12:34') self.assertEqual(pr['Date'], '19801224 12:34') def test_get_timestamp(self): '''get_timestamp() returns timestamp.''' r = problem_report.ProblemReport() self.assertAlmostEqual(r.get_timestamp(), time.time(), delta=2) r['Date'] = 'Thu Jan 9 12:00:00 2014' # delta is ±12 hours, as this depends on the timezone that the test is # run in self.assertAlmostEqual(r.get_timestamp(), 1389265200, delta=43200) def test_get_timestamp_locale_german(self): '''get_timestamp() returns date when LC_TIME is set.''' pr = problem_report.ProblemReport(date='Wed May 18 09:49:57 2022') orig_ctime = locale.getlocale(locale.LC_TIME) try: locale.setlocale(locale.LC_TIME, "de_DE.UTF-8") except locale.Error: self.skipTest("Missing German locale support") self.assertEqual(pr.get_timestamp(), 1652867397 + time.altzone) locale.setlocale(locale.LC_TIME, orig_ctime) def test_get_timestamp_returns_none(self): '''get_timestamp() returns None.''' pr = problem_report.ProblemReport() del pr['Date'] self.assertEqual(pr.get_timestamp(), None) def test_sanity_checks(self): '''various error conditions.''' pr = problem_report.ProblemReport() self.assertRaises(ValueError, pr.__setitem__, 'a b', '1') self.assertRaises(TypeError, pr.__setitem__, 'a', 1) self.assertRaises(TypeError, pr.__setitem__, 'a', (1,)) self.assertRaises(TypeError, pr.__setitem__, 'a', ('/tmp/nonexistant', '')) self.assertRaises(TypeError, pr.__setitem__, 'a', ('/tmp/nonexistant', False, 0, True, 'bogus')) self.assertRaises(TypeError, pr.__setitem__, 'a', ['/tmp/nonexistant']) self.assertRaises(KeyError, pr.__getitem__, 'Nonexistant') def test_compressed_values(self): '''handling of CompressedValue values.''' large_val = b'A' * 5000000 pr = problem_report.ProblemReport() pr['Foo'] = problem_report.CompressedValue(b'FooFoo!') pr['Bin'] = problem_report.CompressedValue() pr['Bin'].set_value(bin_data) pr['Large'] = problem_report.CompressedValue(large_val) self.assertTrue(isinstance(pr['Foo'], problem_report.CompressedValue)) self.assertTrue(isinstance(pr['Bin'], problem_report.CompressedValue)) self.assertEqual(pr['Foo'].get_value(), b'FooFoo!') self.assertEqual(pr['Bin'].get_value(), bin_data) self.assertEqual(pr['Large'].get_value(), large_val) self.assertEqual(len(pr['Foo']), 7) self.assertEqual(len(pr['Bin']), len(bin_data)) self.assertEqual(len(pr['Large']), len(large_val)) io = BytesIO() pr['Bin'].write(io) self.assertEqual(io.getvalue(), bin_data) io = BytesIO() pr['Large'].write(io) self.assertEqual(io.getvalue(), large_val) pr['Multiline'] = problem_report.CompressedValue(b'\1\1\1\n\2\2\n\3\3\3') self.assertEqual(pr['Multiline'].splitlines(), [b'\1\1\1', b'\2\2', b'\3\3\3']) # test writing of reports with CompressedValues io = BytesIO() pr.write(io) io.seek(0) pr = problem_report.ProblemReport() pr.load(io) self.assertEqual(pr['Foo'], 'FooFoo!') self.assertEqual(pr['Bin'], bin_data) self.assertEqual(pr['Large'], large_val.decode('ASCII')) def test_write(self): '''write() and proper formatting.''' pr = problem_report.ProblemReport(date='now!') pr['Simple'] = 'bar' if sys.version.startswith('2'): pr['SimpleUTF8'] = '1äö2Φ3' pr['SimpleUnicode'] = '1äö2Φ3'.decode('UTF-8') pr['TwoLineUnicode'] = 'pi-π\nnu-η'.decode('UTF-8') pr['TwoLineUTF8'] = 'pi-π\nnu-η' else: pr['SimpleUTF8'] = '1äö2Φ3'.encode('UTF-8') pr['SimpleUnicode'] = '1äö2Φ3' pr['TwoLineUnicode'] = 'pi-π\nnu-η' pr['TwoLineUTF8'] = 'pi-π\nnu-η'.encode('UTF-8') pr['WhiteSpace'] = ' foo bar\nbaz\n blip \n\nafteremptyline' # Unicode with a non-space low ASCII character \x05 in it pr['UnprintableUnicode'] = b'a\xc3\xa4\x05z1\xc3\xa9'.decode('UTF-8') io = BytesIO() pr.write(io) expected = '''ProblemType: Crash Date: now! Simple: bar SimpleUTF8: 1äö2Φ3 SimpleUnicode: 1äö2Φ3 TwoLineUTF8: pi-π nu-η TwoLineUnicode: pi-π nu-η UnprintableUnicode: aä\x05z1é WhiteSpace: foo bar baz blip afteremptyline ''' if sys.version > '3': expected = expected.encode('UTF-8') self.assertEqual(io.getvalue(), expected) def test_write_append(self): '''write() with appending to an existing file.''' pr = problem_report.ProblemReport(date='now!') pr['Simple'] = 'bar' pr['WhiteSpace'] = ' foo bar\nbaz\n blip ' io = BytesIO() pr.write(io) pr.clear() pr['Extra'] = 'appended' pr.write(io) self.assertEqual(io.getvalue(), b'''ProblemType: Crash Date: now! Simple: bar WhiteSpace: foo bar baz blip Extra: appended ''') temp = tempfile.NamedTemporaryFile() temp.write(bin_data) temp.flush() pr = problem_report.ProblemReport(date='now!') pr['File'] = (temp.name,) io = BytesIO() pr.write(io) temp.close() pr.clear() pr['Extra'] = 'appended' pr.write(io) io.seek(0) pr = problem_report.ProblemReport() pr.load(io) self.assertEqual(pr['Date'], 'now!') self.assertEqual(pr['File'], bin_data) self.assertEqual(pr['Extra'], 'appended') def test_load(self): '''load() with various formatting.''' pr = problem_report.ProblemReport() pr.load(BytesIO(b'''ProblemType: Crash Date: now! Simple: bar WhiteSpace: foo bar baz blip ''')) self.assertEqual(pr['ProblemType'], 'Crash') self.assertEqual(pr['Date'], 'now!') self.assertEqual(pr['Simple'], 'bar') self.assertEqual(pr['WhiteSpace'], ' foo bar\nbaz\n blip ') # test last field a bit more pr.load(BytesIO(b'''ProblemType: Crash Date: now! Simple: bar WhiteSpace: foo bar baz blip ''')) self.assertEqual(pr['ProblemType'], 'Crash') self.assertEqual(pr['Date'], 'now!') self.assertEqual(pr['Simple'], 'bar') self.assertEqual(pr['WhiteSpace'], ' foo bar\nbaz\n blip \n') # last field might not be \n terminated pr.load(BytesIO(b'''ProblemType: Crash Date: now! Simple: bar WhiteSpace: foo bar''')) self.assertEqual(pr['ProblemType'], 'Crash') self.assertEqual(pr['Date'], 'now!') self.assertEqual(pr['Simple'], 'bar') self.assertEqual(pr['WhiteSpace'], 'foo\nbar') pr = problem_report.ProblemReport() pr.load(BytesIO(b'''ProblemType: Crash WhiteSpace: foo bar baz blip Last: foo ''')) self.assertEqual(pr['WhiteSpace'], ' foo bar\nbaz\n\n blip ') self.assertEqual(pr['Last'], 'foo') pr.load(BytesIO(b'''ProblemType: Crash WhiteSpace: foo bar baz blip Last: foo ''')) self.assertEqual(pr['WhiteSpace'], ' foo bar\nbaz\n blip ') self.assertEqual(pr['Last'], 'foo\n') # empty lines in values must have a leading space in coding invalid_spacing = BytesIO(b'''WhiteSpace: first second ''') pr = problem_report.ProblemReport() self.assertRaises(ValueError, pr.load, invalid_spacing) # test that load() cleans up properly pr.load(BytesIO(b'ProblemType: Crash')) self.assertEqual(list(pr.keys()), ['ProblemType']) def test_extract_keys(self): '''extract_keys() with various binary elements.''' # create a test report with binary elements large_val = b'A' * 5000000 pr = problem_report.ProblemReport() pr['Txt'] = 'some text' pr['MoreTxt'] = 'some more text' pr['Foo'] = problem_report.CompressedValue(b'FooFoo!') pr['Uncompressed'] = bin_data pr['Bin'] = problem_report.CompressedValue() pr['Bin'].set_value(bin_data) pr['Large'] = problem_report.CompressedValue(large_val) pr['Multiline'] = problem_report.CompressedValue(b'\1\1\1\n\2\2\n\3\3\3') report = BytesIO() pr.write(report) report.seek(0) self.assertRaises(IOError, pr.extract_keys, report, 'Bin', os.path.join(self.workdir, 'nonexistant')) # Test exception handling: Non-binary and nonexistent key tests = [(ValueError, 'Txt'), (ValueError, ['Foo', 'Txt']), (KeyError, 'Bar'), (KeyError, ['Foo', 'Bar'])] for exc, keys_arg in tests: report.seek(0) self.assertRaises(exc, pr.extract_keys, report, keys_arg, self.workdir) # Check valid single elements tests = {'Foo': b'FooFoo!', 'Uncompressed': bin_data, 'Bin': bin_data, 'Large': large_val, 'Multiline': b'\1\1\1\n\2\2\n\3\3\3'} for key, expected in tests.items(): report.seek(0) pr.extract_keys(report, key, self.workdir) with open(os.path.join(self.workdir, key), 'rb') as f: self.assertEqual(f.read(), expected) # remove file for next pass os.remove(os.path.join(self.workdir, key)) # Check element list report.seek(0) tests = {'Foo': b'FooFoo!', 'Uncompressed': bin_data} pr.extract_keys(report, tests.keys(), self.workdir) for key, expected in tests.items(): with open(os.path.join(self.workdir, key), 'rb') as f: self.assertEqual(f.read(), expected) def test_write_file(self): '''writing a report with binary file data.''' temp = tempfile.NamedTemporaryFile() temp.write(bin_data) temp.flush() pr = problem_report.ProblemReport(date='now!') pr['File'] = (temp.name,) pr['Afile'] = (temp.name,) io = BytesIO() pr.write(io) temp.close() self.assertEqual(io.getvalue(), b'''ProblemType: Crash Date: now! Afile: base64 H4sICAAAAAAC/0FmaWxlAA== c3RyhEIGBoYoRiYAM5XUCxAAAAA= File: base64 H4sICAAAAAAC/0ZpbGUA c3RyhEIGBoYoRiYAM5XUCxAAAAA= ''') # force compression/encoding bool temp = tempfile.NamedTemporaryFile() temp.write(b'foo\0bar') temp.flush() pr = problem_report.ProblemReport(date='now!') pr['File'] = (temp.name, False) io = BytesIO() pr.write(io) self.assertEqual(io.getvalue(), b'''ProblemType: Crash Date: now! File: foo\0bar ''') pr['File'] = (temp.name, True) io = BytesIO() pr.write(io) self.assertEqual(io.getvalue(), b'''ProblemType: Crash Date: now! File: base64 H4sICAAAAAAC/0ZpbGUA S8vPZ0hKLAIACq50HgcAAAA= ''') temp.close() def test_write_fileobj(self): '''writing a report with a pointer to a file-like object.''' tempbin = BytesIO(bin_data) tempasc = BytesIO(b'Hello World') pr = problem_report.ProblemReport(date='now!') pr['BinFile'] = (tempbin,) pr['AscFile'] = (tempasc, False) io = BytesIO() pr.write(io) io.seek(0) pr = problem_report.ProblemReport() pr.load(io) self.assertEqual(pr['BinFile'], tempbin.getvalue()) self.assertEqual(pr['AscFile'], tempasc.getvalue().decode()) def test_write_empty_fileobj(self): '''writing a report with a pointer to a file-like object with enforcing non-emptyness.''' tempbin = BytesIO(b'') tempasc = BytesIO(b'') pr = problem_report.ProblemReport(date='now!') pr['BinFile'] = (tempbin, True, None, True) io = BytesIO() self.assertRaises(IOError, pr.write, io) pr = problem_report.ProblemReport(date='now!') pr['AscFile'] = (tempasc, False, None, True) io = BytesIO() self.assertRaises(IOError, pr.write, io) def test_write_delayed_fileobj(self): '''writing a report with file pointers and delayed data.''' (fout, fin) = os.pipe() if os.fork() == 0: os.close(fout) time.sleep(0.3) os.write(fin, b'ab' * 512 * 1024) time.sleep(0.3) os.write(fin, b'hello') time.sleep(0.3) os.write(fin, b' world') os.close(fin) os._exit(0) os.close(fin) pr = problem_report.ProblemReport(date='now!') io = BytesIO() with os.fdopen(fout, 'rb') as f: pr['BinFile'] = (f,) pr.write(io) assert os.wait()[1] == 0 io.seek(0) pr2 = problem_report.ProblemReport() pr2.load(io) self.assertEqual(pr2['BinFile'], 'ab' * 512 * 1024 + 'hello world') def test_read_file(self): '''reading a report with binary data.''' bin_report = b'''ProblemType: Crash Date: now! File: base64 H4sICAAAAAAC/0ZpbGUA c3RyhEIGBoYoRiYAM5XUCxAAAAA= Foo: Bar ''' # test with reading everything pr = problem_report.ProblemReport() pr.load(BytesIO(bin_report)) self.assertEqual(pr['File'], bin_data) self.assertEqual(pr.has_removed_fields(), False) # test with skipping binary data pr.load(BytesIO(bin_report), binary=False) self.assertEqual(pr['File'], None) self.assertEqual(pr.has_removed_fields(), True) # test with keeping compressed binary data pr.load(BytesIO(bin_report), binary='compressed') self.assertEqual(pr['Foo'], 'Bar') self.assertEqual(pr.has_removed_fields(), False) self.assertTrue(isinstance(pr['File'], problem_report.CompressedValue)) self.assertEqual(len(pr['File']), len(bin_data)) self.assertEqual(pr['File'].get_value(), bin_data) def test_read_file_legacy(self): '''reading a report with binary data in legacy format without gzip header.''' bin_report = b'''ProblemType: Crash Date: now! File: base64 eJw= c3RyxIAMcBAFAG55BXk= Foo: Bar ''' # test with reading everything pr = problem_report.ProblemReport() pr.load(BytesIO(bin_report)) self.assertEqual(pr['File'], b'AB' * 10 + b'\0' * 10 + b'Z') self.assertEqual(pr.has_removed_fields(), False) # test with skipping binary data pr.load(BytesIO(bin_report), binary=False) self.assertEqual(pr['File'], None) self.assertEqual(pr.has_removed_fields(), True) # test with keeping CompressedValues pr.load(BytesIO(bin_report), binary='compressed') self.assertEqual(pr.has_removed_fields(), False) self.assertEqual(len(pr['File']), 31) self.assertEqual(pr['File'].get_value(), b'AB' * 10 + b'\0' * 10 + b'Z') io = BytesIO() pr['File'].write(io) io.seek(0) self.assertEqual(io.read(), b'AB' * 10 + b'\0' * 10 + b'Z') def test_big_file(self): '''writing and re-decoding a big random file.''' # create 1 MB random file temp = tempfile.NamedTemporaryFile() data = os.urandom(1048576) temp.write(data) temp.flush() # write it into problem report pr = problem_report.ProblemReport() pr['File'] = (temp.name,) pr['Before'] = 'xtestx' pr['ZAfter'] = 'ytesty' io = BytesIO() pr.write(io) temp.close() # read it again io.seek(0) pr = problem_report.ProblemReport() pr.load(io) self.assertTrue(pr['File'] == data) self.assertEqual(pr['Before'], 'xtestx') self.assertEqual(pr['ZAfter'], 'ytesty') # write it again io2 = BytesIO() pr.write(io2) self.assertTrue(io.getvalue() == io2.getvalue()) # check gzip compatibility io.seek(0) pr = problem_report.ProblemReport() pr.load(io, binary='compressed') self.assertEqual(pr['File'].get_value(), data) def test_size_limit(self): '''writing and a big random file with a size limit key.''' # create 1 MB random file temp = tempfile.NamedTemporaryFile() data = os.urandom(1048576) temp.write(data) temp.flush() # write it into problem report pr = problem_report.ProblemReport() pr['FileSmallLimit'] = (temp.name, True, 100) pr['FileLimitMinus1'] = (temp.name, True, 1048575) pr['FileExactLimit'] = (temp.name, True, 1048576) pr['FileLimitPlus1'] = (temp.name, True, 1048577) pr['FileLimitNone'] = (temp.name, True, None) pr['Before'] = 'xtestx' pr['ZAfter'] = 'ytesty' io = BytesIO() pr.write(io) temp.close() # read it again io.seek(0) pr = problem_report.ProblemReport() pr.load(io) self.assertFalse('FileSmallLimit' in pr) self.assertFalse('FileLimitMinus1' in pr) self.assertTrue(pr['FileExactLimit'] == data) self.assertTrue(pr['FileLimitPlus1'] == data) self.assertTrue(pr['FileLimitNone'] == data) self.assertEqual(pr['Before'], 'xtestx') self.assertEqual(pr['ZAfter'], 'ytesty') def test_iter(self): '''problem_report.ProblemReport iteration.''' pr = problem_report.ProblemReport() pr['foo'] = 'bar' keys = [] for k in pr: keys.append(k) keys.sort() self.assertEqual(' '.join(keys), 'Date ProblemType foo') self.assertEqual(len([k for k in pr if k != 'foo']), 2) def test_modify(self): '''reading, modifying fields, and writing back.''' report = b'''ProblemType: Crash Date: now! Long: xxx . yyy Short: Bar File: base64 H4sICAAAAAAC/0ZpbGUA c3RyxIAMcBAFAK/2p9MfAAAA ''' pr = problem_report.ProblemReport() pr.load(BytesIO(report)) self.assertEqual(pr['Long'], 'xxx\n.\nyyy') # write back unmodified io = BytesIO() pr.write(io) self.assertEqual(io.getvalue(), report) pr['Short'] = 'aaa\nbbb' pr['Long'] = '123' io = BytesIO() pr.write(io) self.assertEqual(io.getvalue(), b'''ProblemType: Crash Date: now! Long: 123 Short: aaa bbb File: base64 H4sICAAAAAAC/0ZpbGUA c3RyxIAMcBAFAK/2p9MfAAAA ''') def test_add_to_existing(self): '''adding information to an existing report.''' # original report pr = problem_report.ProblemReport() pr['old1'] = '11' pr['old2'] = '22' (fd, rep) = tempfile.mkstemp() os.close(fd) with open(rep, 'wb') as f: pr.write(f) origstat = os.stat(rep) # create a new one and add it pr = problem_report.ProblemReport() pr.clear() pr['new1'] = '33' pr.add_to_existing(rep, keep_times=True) # check keep_times newstat = os.stat(rep) self.assertEqual(origstat.st_mode, newstat.st_mode) self.assertAlmostEqual(origstat.st_atime, newstat.st_atime, 1) self.assertAlmostEqual(origstat.st_mtime, newstat.st_mtime, 1) # check report contents newpr = problem_report.ProblemReport() with open(rep, 'rb') as f: newpr.load(f) self.assertEqual(newpr['old1'], '11') self.assertEqual(newpr['old2'], '22') self.assertEqual(newpr['new1'], '33') # create a another new one and add it, but make sure mtime must be # different time.sleep(1) with open(rep) as f: f.read() # bump atime time.sleep(1) pr = problem_report.ProblemReport() pr.clear() pr['new2'] = '44' pr.add_to_existing(rep) # check that timestamps have been updates newstat = os.stat(rep) self.assertEqual(origstat.st_mode, newstat.st_mode) self.assertNotEqual(origstat.st_mtime, newstat.st_mtime) # skip atime check if filesystem is mounted noatime skip_atime = False dir = rep while len(dir) > 1: dir, filename = os.path.split(dir) if os.path.ismount(dir): with open('/proc/mounts') as f: for line in f: mount, fs, options = line.split(' ')[1:4] if mount == dir and 'noatime' in options.split(','): skip_atime = True break break if not skip_atime: self.assertNotEqual(origstat.st_atime, newstat.st_atime) # check report contents newpr = problem_report.ProblemReport() with open(rep, 'rb') as f: newpr.load(f) self.assertEqual(newpr['old1'], '11') self.assertEqual(newpr['old2'], '22') self.assertEqual(newpr['new1'], '33') self.assertEqual(newpr['new2'], '44') os.unlink(rep) def test_write_mime_text(self): '''write_mime() for text values.''' pr = problem_report.ProblemReport(date='now!') pr['Simple'] = 'bar' if sys.version.startswith('2'): pr['SimpleUTF8'] = '1äö2Φ3' pr['SimpleUnicode'] = '1äö2Φ3'.decode('UTF-8') pr['TwoLineUnicode'] = 'pi-π\nnu-η\n'.decode('UTF-8') pr['TwoLineUTF8'] = 'pi-π\nnu-η\n' else: pr['SimpleUTF8'] = '1äö2Φ3'.encode('UTF-8') pr['SimpleUnicode'] = '1äö2Φ3' pr['TwoLineUnicode'] = 'pi-π\nnu-η\n' pr['TwoLineUTF8'] = 'pi-π\nnu-η\n'.encode('UTF-8') pr['SimpleLineEnd'] = 'bar\n' pr['TwoLine'] = 'first\nsecond\n' pr['InlineMargin'] = 'first\nsecond\nthird\nfourth\nfifth\n' pr['Multiline'] = ' foo bar\nbaz\n blip \nline4\nline♥5!!\nłıµ€ ⅝\n' # still small enough for inline text pr['Largeline'] = 'A' * 999 pr['LargeMultiline'] = 'A' * 120 + '\n' + 'B' * 90 # too big for inline text, these become attachments pr['Hugeline'] = 'A' * 10000 pr['HugeMultiline'] = 'A' * 900 + '\n' + 'B' * 900 + '\n' + 'C' * 900 io = BytesIO() pr.write_mime(io) io.seek(0) msg = email.message_from_binary_file(io) parts = [p for p in msg.walk()] self.assertEqual(len(parts), 5) # first part is the multipart container self.assertTrue(parts[0].is_multipart()) # second part should be an inline text/plain attachments with all short # fields self.assertTrue(not parts[1].is_multipart()) self.assertEqual(parts[1].get_content_type(), 'text/plain') self.assertEqual(parts[1].get_content_charset(), 'utf-8') self.assertEqual(parts[1].get_filename(), None) expected = '''ProblemType: Crash Date: now! InlineMargin: first second third fourth fifth LargeMultiline: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB Largeline: %s Simple: bar SimpleLineEnd: bar SimpleUTF8: 1äö2Φ3 SimpleUnicode: 1äö2Φ3 TwoLine: first second TwoLineUTF8: pi-π nu-η TwoLineUnicode: pi-π nu-η ''' % pr['Largeline'] if sys.version >= '3': expected = expected.encode('UTF-8') self.assertEqual(parts[1].get_payload(decode=True), expected) # third part should be the HugeMultiline: field as attachment self.assertTrue(not parts[2].is_multipart()) self.assertEqual(parts[2].get_content_type(), 'text/plain') self.assertEqual(parts[2].get_content_charset(), 'utf-8') self.assertEqual(parts[2].get_filename(), 'HugeMultiline.txt') self.assertEqual(parts[2].get_payload(decode=True), pr['HugeMultiline'].encode()) # fourth part should be the Hugeline: field as attachment self.assertTrue(not parts[3].is_multipart()) self.assertEqual(parts[3].get_content_type(), 'text/plain') self.assertEqual(parts[3].get_content_charset(), 'utf-8') self.assertEqual(parts[3].get_filename(), 'Hugeline.txt') self.assertEqual(parts[3].get_payload(decode=True), pr['Hugeline'].encode()) # fifth part should be the Multiline: field as attachment self.assertTrue(not parts[4].is_multipart()) self.assertEqual(parts[4].get_content_type(), 'text/plain') self.assertEqual(parts[4].get_content_charset(), 'utf-8') self.assertEqual(parts[4].get_filename(), 'Multiline.txt') expected = ''' foo bar baz blip line4 line♥5!! łıµ€ ⅝ ''' if sys.version >= '3': expected = expected.encode('UTF-8') self.assertEqual(parts[4].get_payload(decode=True), expected) def test_write_mime_binary(self): '''write_mime() for binary values and file references.''' temp = tempfile.NamedTemporaryFile() temp.write(bin_data) temp.flush() tempgz = tempfile.NamedTemporaryFile() gz = gzip.GzipFile('File1', 'w', fileobj=tempgz) gz.write(bin_data) gz.close() tempgz.flush() pr = problem_report.ProblemReport(date='now!') pr['Context'] = 'Test suite' pr['File1'] = (temp.name,) pr['File1.gz'] = (tempgz.name,) pr['Value1'] = bin_data with open(tempgz.name, 'rb') as f: pr['Value1.gz'] = f.read() pr['ZValue'] = problem_report.CompressedValue(bin_data) io = BytesIO() pr.write_mime(io) io.seek(0) msg = email.message_from_binary_file(io) parts = [p for p in msg.walk()] self.assertEqual(len(parts), 7) # first part is the multipart container self.assertTrue(parts[0].is_multipart()) # second part should be an inline text/plain attachments with all short # fields self.assertTrue(not parts[1].is_multipart()) self.assertEqual(parts[1].get_content_type(), 'text/plain') self.assertEqual(parts[1].get_content_charset(), 'utf-8') self.assertEqual(parts[1].get_filename(), None) self.assertEqual(parts[1].get_payload(decode=True), b'ProblemType: Crash\nContext: Test suite\nDate: now!\n') # third part should be the File1: file contents as gzip'ed attachment self.assertTrue(not parts[2].is_multipart()) self.assertEqual(parts[2].get_content_type(), 'application/x-gzip') self.assertEqual(parts[2].get_filename(), 'File1.gz') f = tempfile.TemporaryFile() f.write(parts[2].get_payload(decode=True)) f.seek(0) self.assertEqual(gzip.GzipFile(mode='rb', fileobj=f).read(), bin_data) f.close() # fourth part should be the File1.gz: file contents as gzip'ed # attachment; write_mime() should not compress it again self.assertTrue(not parts[3].is_multipart()) self.assertEqual(parts[3].get_content_type(), 'application/x-gzip') self.assertEqual(parts[3].get_filename(), 'File1.gz') f = tempfile.TemporaryFile() f.write(parts[3].get_payload(decode=True)) f.seek(0) self.assertEqual(gzip.GzipFile(mode='rb', fileobj=f).read(), bin_data) f.close() # fifth part should be the Value1: value as gzip'ed attachment self.assertTrue(not parts[4].is_multipart()) self.assertEqual(parts[4].get_content_type(), 'application/x-gzip') self.assertEqual(parts[4].get_filename(), 'Value1.gz') f = tempfile.TemporaryFile() f.write(parts[4].get_payload(decode=True)) f.seek(0) self.assertEqual(gzip.GzipFile(mode='rb', fileobj=f).read(), bin_data) f.close() # sixth part should be the Value1: value as gzip'ed attachment; # write_mime should not compress it again self.assertTrue(not parts[5].is_multipart()) self.assertEqual(parts[5].get_content_type(), 'application/x-gzip') self.assertEqual(parts[5].get_filename(), 'Value1.gz') f = tempfile.TemporaryFile() f.write(parts[5].get_payload(decode=True)) f.seek(0) self.assertEqual(gzip.GzipFile(mode='rb', fileobj=f).read(), bin_data) f.close() # seventh part should be the ZValue: value as gzip'ed attachment; # write_mime should not compress it again self.assertTrue(not parts[6].is_multipart()) self.assertEqual(parts[6].get_content_type(), 'application/x-gzip') self.assertEqual(parts[6].get_filename(), 'ZValue.gz') f = tempfile.TemporaryFile() f.write(parts[6].get_payload(decode=True)) f.seek(0) self.assertEqual(gzip.GzipFile(mode='rb', fileobj=f).read(), bin_data) f.close() def test_write_mime_extra_headers(self): '''write_mime() with extra headers.''' pr = problem_report.ProblemReport(date='now!') pr['Simple'] = 'bar' pr['TwoLine'] = 'first\nsecond\n' io = BytesIO() pr.write_mime(io, extra_headers={'Greeting': 'hello world', 'Foo': 'Bar'}) io.seek(0) msg = email.message_from_binary_file(io) self.assertEqual(msg['Greeting'], 'hello world') self.assertEqual(msg['Foo'], 'Bar') parts = [p for p in msg.walk()] self.assertEqual(len(parts), 2) # first part is the multipart container self.assertTrue(parts[0].is_multipart()) # second part should be an inline text/plain attachments with all short # fields self.assertTrue(not parts[1].is_multipart()) self.assertEqual(parts[1].get_content_type(), 'text/plain') self.assertTrue(b'Simple: bar' in parts[1].get_payload(decode=True)) def test_write_mime_filter(self): '''write_mime() with key filters.''' pr = problem_report.ProblemReport(date='now!') pr['GoodText'] = 'Hi' pr['BadText'] = 'YouDontSeeMe' pr['GoodBin'] = bin_data pr['BadBin'] = 'Y' + '\x05' * 10 + '-' io = BytesIO() pr.write_mime(io, skip_keys=['BadText', 'BadBin']) io.seek(0) msg = email.message_from_binary_file(io) parts = [p for p in msg.walk()] self.assertEqual(len(parts), 3) # first part is the multipart container self.assertTrue(parts[0].is_multipart()) # second part should be an inline text/plain attachments with all short # fields self.assertTrue(not parts[1].is_multipart()) self.assertEqual(parts[1].get_content_type(), 'text/plain') self.assertEqual(parts[1].get_content_charset(), 'utf-8') self.assertEqual(parts[1].get_filename(), None) self.assertEqual(parts[1].get_payload(decode=True), b'''ProblemType: Crash Date: now! GoodText: Hi ''') # third part should be the GoodBin: field as attachment self.assertTrue(not parts[2].is_multipart()) f = tempfile.TemporaryFile() f.write(parts[2].get_payload(decode=True)) f.seek(0) self.assertEqual(gzip.GzipFile(mode='rb', fileobj=f).read(), bin_data) f.close() def test_write_mime_order(self): '''write_mime() with keys ordered.''' pr = problem_report.ProblemReport(date='now!') pr['SecondText'] = 'What' pr['FirstText'] = 'Who' pr['FourthText'] = 'Today' pr['ThirdText'] = "I Don't Know" io = BytesIO() pr.write_mime(io, priority_fields=['FirstText', 'SecondText', 'ThirdText', 'Unknown', 'FourthText']) io.seek(0) msg = email.message_from_binary_file(io) parts = [p for p in msg.walk()] self.assertEqual(len(parts), 2) # first part is the multipart container self.assertTrue(parts[0].is_multipart()) # second part should be an inline text/plain attachments with all short # fields self.assertTrue(not parts[1].is_multipart()) self.assertEqual(parts[1].get_content_type(), 'text/plain') self.assertEqual(parts[1].get_content_charset(), 'utf-8') self.assertEqual(parts[1].get_filename(), None) self.assertEqual(parts[1].get_payload(decode=True), b'''FirstText: Who SecondText: What ThirdText: I Don't Know FourthText: Today ProblemType: Crash Date: now! ''') def test_updating(self): '''new_keys() and write() with only_new=True.''' pr = problem_report.ProblemReport() self.assertEqual(pr.new_keys(), set(['ProblemType', 'Date'])) pr.load(BytesIO(b'''ProblemType: Crash Date: now! Foo: bar Baz: blob ''')) self.assertEqual(pr.new_keys(), set()) pr['Foo'] = 'changed' pr['NewKey'] = 'new new' self.assertEqual(pr.new_keys(), set(['NewKey'])) out = BytesIO() pr.write(out, only_new=True) self.assertEqual(out.getvalue(), b'NewKey: new new\n') def test_import_dict(self): '''importing a dictionary with update().''' pr = problem_report.ProblemReport() pr['oldtext'] = 'Hello world' pr['oldbin'] = bin_data pr['overwrite'] = 'I am crap' d = {} d['newtext'] = 'Goodbye world' d['newbin'] = '11\000\001\002\xFFZZ' d['overwrite'] = 'I am good' pr.update(d) self.assertEqual(pr['oldtext'], 'Hello world') self.assertEqual(pr['oldbin'], bin_data) self.assertEqual(pr['newtext'], 'Goodbye world') self.assertEqual(pr['newbin'], '11\000\001\002\xFFZZ') self.assertEqual(pr['overwrite'], 'I am good') def test_load_key_filter(self): '''load a report with filtering keys.''' io = BytesIO(b'''ProblemType: Crash DataNo: nonono GoodFile: base64 H4sICAAAAAAC/0FmaWxlAA== c3RyhEIGBoYoRiYAM5XUCxAAAAA= DataYes: yesyes BadFile: base64 H4sICAAAAAAC/0ZpbGUA S8vPZ0hKLAIACq50HgcAAAA= ''') pr = problem_report.ProblemReport() pr.load(io, key_filter=['DataYes', 'GoodFile']) self.assertEqual(pr['DataYes'], 'yesyes') self.assertEqual(pr['GoodFile'], bin_data) self.assertEqual(sorted(pr.keys()), ['DataYes', 'GoodFile']) if __name__ == '__main__': unittest.main() ������������������������������������������������������������������������apport-2.20.11/test/test_python_crashes.py����������������������������������������������������������0000664�0000000�0000000�00000045435�14416106601�015505� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Test apport_python_hook.py # # Copyright (c) 2006 - 2011 Canonical Ltd. # Authors: Robert Collins <robert@ubuntu.com> # Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import unittest, tempfile, subprocess, os, stat, shutil, atexit import dbus temp_report_dir = tempfile.mkdtemp() os.environ['APPORT_REPORT_DIR'] = temp_report_dir atexit.register(shutil.rmtree, temp_report_dir) import apport.fileutils import apport.report class T(unittest.TestCase): def tearDown(self): for f in apport.fileutils.get_all_reports(): os.unlink(f) def _test_crash(self, extracode='', scriptname=None): '''Create a test crash.''' # put the script into /var/tmp, since that isn't ignored in the # hook if scriptname: script = scriptname fd = os.open(scriptname, os.O_CREAT | os.O_WRONLY) else: (fd, script) = tempfile.mkstemp(dir='/var/tmp') self.addCleanup(os.unlink, script) os.write(fd, ('''#!/usr/bin/env %s import apport_python_hook apport_python_hook.install() def func(x): raise Exception(b'This should happen. \\xe2\\x99\\xa5'.decode('UTF-8')) %s func(42) ''' % (os.getenv('PYTHON', 'python3'), extracode)).encode()) os.close(fd) os.chmod(script, 0o755) env = os.environ.copy() env['PYTHONPATH'] = '.:/my/bogus/path' p = subprocess.Popen([script, 'testarg1', 'testarg2'], stderr=subprocess.PIPE, env=env) err = p.communicate()[1].decode() self.assertEqual(p.returncode, 1, 'crashing test python program exits with failure code') if not extracode: self.assertIn('This should happen.', err) self.assertNotIn('IOError', err) return script def test_general(self): '''general operation of the Python crash hook.''' script = self._test_crash() # did we get a report? reports = apport.fileutils.get_new_reports() pr = None self.assertEqual(len(reports), 1, 'crashed Python program produced a report') self.assertEqual(stat.S_IMODE(os.stat(reports[0]).st_mode), 0o640, 'report has correct permissions') pr = apport.report.Report() with open(reports[0], 'rb') as f: pr.load(f) # check report contents expected_keys = ['InterpreterPath', 'PythonArgs', 'Traceback', 'ProblemType', 'ProcEnviron', 'ProcStatus', 'ProcCmdline', 'Date', 'ExecutablePath', 'ProcMaps', 'UserGroups'] self.assertTrue(set(expected_keys).issubset(set(pr.keys())), 'report has necessary fields') self.assertIn('bin/python', pr['InterpreterPath']) self.assertEqual(pr['ExecutablePath'], script) self.assertEqual(pr['ExecutableTimestamp'], str(int(os.stat(script).st_mtime))) self.assertEqual(pr['PythonArgs'], "['%s', 'testarg1', 'testarg2']" % script) self.assertTrue(pr['Traceback'].startswith('Traceback')) self.assertIn("func\n raise Exception(b'This should happen.", pr['Traceback']) def test_existing(self): '''Python crash hook overwrites seen existing files.''' script = self._test_crash() # did we get a report? reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 1, 'crashed Python program produced a report') self.assertEqual(stat.S_IMODE(os.stat(reports[0]).st_mode), 0o640, 'report has correct permissions') # touch report -> "seen" case apport.fileutils.mark_report_seen(reports[0]) reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 0) script = self._test_crash(scriptname=script) reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 1) # "unseen" case script = self._test_crash(scriptname=script) reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 1) def test_symlink(self): '''Python crash of a symlinked program resolves to target''' script = self._test_crash() # load report for this reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 1, 'crashed Python program produced a report') pr1 = apport.Report() with open(reports[0], 'rb') as f: pr1.load(f) for f in apport.fileutils.get_all_reports(): os.unlink(f) script_link = os.path.join(os.path.dirname(script), 'script-link') os.symlink(os.path.basename(script), script_link) self.addCleanup(os.unlink, script_link) # run script through symlink name p = subprocess.Popen([script_link], stderr=subprocess.PIPE) err = p.communicate()[1].decode() self.assertEqual(p.returncode, 1, 'crashing test python program exits with failure code') self.assertIn('This should happen.', err) # get report for symlinked crash reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 1, 'crashed Python program produced a report') pr2 = apport.Report() with open(reports[0], 'rb') as f: pr2.load(f) # check report contents self.assertIn('bin/python', pr2['InterpreterPath']) self.assertEqual(pr1['ExecutablePath'], script) self.assertEqual(pr2['ExecutablePath'], script) self.assertEqual(pr1.crash_signature(), pr2.crash_signature()) def test_no_argv(self): '''with zapped sys.argv.''' self._test_crash('import sys\nsys.argv = None') # did we get a report? reports = apport.fileutils.get_new_reports() pr = None self.assertEqual(len(reports), 1, 'crashed Python program produced a report') self.assertEqual(stat.S_IMODE(os.stat(reports[0]).st_mode), 0o640, 'report has correct permissions') pr = apport.report.Report() with open(reports[0], 'rb') as f: pr.load(f) # check report contents expected_keys = ['InterpreterPath', 'Traceback', 'ProblemType', 'ProcEnviron', 'ProcStatus', 'ProcCmdline', 'Date', 'ExecutablePath', 'ProcMaps', 'UserGroups'] self.assertTrue(set(expected_keys).issubset(set(pr.keys())), 'report has necessary fields') self.assertIn('bin/python', pr['InterpreterPath']) # we have no actual executable, so we should fall back to the # interpreter self.assertEqual(pr['ExecutablePath'], pr['InterpreterPath']) if 'ExecutableTimestamp' in pr: self.assertEqual(pr['ExecutableTimestamp'], str(int(os.stat(pr['ExecutablePath']).st_mtime))) self.assertTrue(pr['Traceback'].startswith('Traceback')) def test_python_env(self): '''Python environmental variables appear in report''' self._test_crash() # did we get a report? reports = apport.fileutils.get_new_reports() pr = None self.assertEqual(len(reports), 1, 'crashed Python program produced a report') pr = apport.report.Report() with open(reports[0], 'rb') as f: pr.load(f) # check report contents self.assertIn('PYTHONPATH', pr['ProcEnviron']) self.assertIn('/my/bogus/path', pr['ProcEnviron']) def _assert_no_reports(self): '''Assert that there are no crash reports.''' reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 0, 'no crash reports present (cwd: %s)' % os.getcwd()) def test_interactive(self): '''interactive Python sessions never generate a report.''' orig_cwd = os.getcwd() try: for d in ('/tmp', '/usr/local', '/usr'): os.chdir(d) p = subprocess.Popen(['python3'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = p.communicate(b'raise ValueError') out = out.decode() err = err.decode() assert p.returncode != 0 assert out == '' assert 'ValueError' in err self._assert_no_reports() finally: os.chdir(orig_cwd) def test_ignoring(self): '''the Python crash hook respects the ignore list.''' # put the script into /var/crash, since that isn't ignored in the # hook (fd, script) = tempfile.mkstemp(dir=apport.fileutils.report_dir) orig_home = os.getenv('HOME') if orig_home is not None: del os.environ['HOME'] ifpath = os.path.expanduser(apport.report._ignore_file) orig_ignore_file = None if orig_home is not None: os.environ['HOME'] = orig_home try: os.write(fd, ('''#!/usr/bin/env %s import apport_python_hook apport_python_hook.install() def func(x): raise Exception('This should happen.') func(42) ''' % os.getenv('PYTHON', 'python3')).encode('ascii')) os.close(fd) os.chmod(script, 0o755) # move aside current ignore file if os.path.exists(ifpath): orig_ignore_file = ifpath + '.apporttest' os.rename(ifpath, orig_ignore_file) # ignore r = apport.report.Report() r['ExecutablePath'] = script r.mark_ignore() r = None p = subprocess.Popen([script, 'testarg1', 'testarg2'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) err = p.communicate()[1].decode() self.assertEqual(p.returncode, 1, 'crashing test python program exits with failure code') self.assertIn('Exception: This should happen.', err) finally: os.unlink(script) # clean up our ignore file if os.path.exists(ifpath): os.unlink(ifpath) if orig_ignore_file: os.rename(orig_ignore_file, ifpath) # did we get a report? reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 0) def test_no_flooding(self): '''limit successive reports''' count = 0 limit = 5 try: while count < limit: self._test_crash(scriptname='/var/tmp/pytestcrash') reports = apport.fileutils.get_new_reports() if not reports: break self.assertEqual(len(reports), 1, 'crashed Python program produced one report') apport.fileutils.mark_report_seen(reports[0]) count += 1 finally: os.unlink('/var/tmp/pytestcrash') self.assertGreater(count, 1) self.assertLess(count, limit) def test_dbus_service_unknown_invalid(self): '''DBus.Error.ServiceUnknown with an invalid name''' self._test_crash(extracode='''import dbus obj = dbus.SessionBus().get_object('com.example.NotExisting', '/Foo') ''') pr = self._load_report() self.assertTrue(pr['Traceback'].startswith('Traceback'), pr['Traceback']) self.assertIn('org.freedesktop.DBus.Error.ServiceUnknown', pr['Traceback']) self.assertEqual(pr['DbusErrorAnalysis'], 'no service file providing com.example.NotExisting') def test_dbus_service_unknown_wrongbus_notrunning(self): '''DBus.Error.ServiceUnknown with a valid name on a different bus (not running)''' subprocess.call(['killall', 'gvfsd-metadata']) self._test_crash(extracode='''import dbus obj = dbus.SystemBus().get_object('org.gtk.vfs.Metadata', '/org/gtk/vfs/metadata') ''') pr = self._load_report() self.assertIn('org.freedesktop.DBus.Error.ServiceUnknown', pr['Traceback']) self.assertRegex(pr['DbusErrorAnalysis'], '^provided by .*/dbus-1/services.*vfs.*[mM]etadata.service') self.assertIn('gvfsd-metadata is not running', pr['DbusErrorAnalysis']) def test_dbus_service_unknown_wrongbus_running(self): '''DBus.Error.ServiceUnknown with a valid name on a different bus (running)''' self._test_crash(extracode='''import dbus # let the service be activated, to ensure it is running obj = dbus.SessionBus().get_object('org.gtk.vfs.Metadata', '/org/gtk/vfs/metadata') assert obj obj = dbus.SystemBus().get_object('org.gtk.vfs.Metadata', '/org/gtk/vfs/metadata') ''') pr = self._load_report() self.assertIn('org.freedesktop.DBus.Error.ServiceUnknown', pr['Traceback']) self.assertRegex(pr['DbusErrorAnalysis'], '^provided by .*/dbus-1/services.*vfs.*[mM]etadata.service') self.assertIn('gvfsd-metadata is running', pr['DbusErrorAnalysis']) def test_dbus_service_timeout_running(self): '''DBus.Error.NoReply with a running service''' # ensure the service is running metadata_obj = dbus.SessionBus().get_object('org.gtk.vfs.Metadata', '/org/gtk/vfs/metadata') self.assertNotEqual(metadata_obj, None) # timeout of zero will always fail with NoReply try: subprocess.call(['killall', '-STOP', 'gvfsd-metadata']) self._test_crash(extracode='''import dbus obj = dbus.SessionBus().get_object('org.gtk.vfs.Metadata', '/org/gtk/vfs/metadata') assert obj i = dbus.Interface(obj, 'org.freedesktop.DBus.Peer') i.Ping(timeout=1) ''') finally: subprocess.call(['killall', '-CONT', 'gvfsd-metadata']) # check report contents reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 0, 'NoReply is an useless exception and should not create a report') # This is disabled for now as we cannot get the bus name from the NoReply exception # pr = self._load_report() # self.assertTrue('org.freedesktop.DBus.Error.NoReply' in pr['Traceback'], pr['Traceback']) # self.assertTrue(pr['DbusErrorAnalysis'].startswith('provided by /usr/share/dbus-1/services/gvfs-metadata.service'), # pr['DbusErrorAnalysis']) # self.assertTrue('gvfsd-metadata is running' in pr['DbusErrorAnalysis'], pr['DbusErrorAnalysis']) # This is disabled for now as we cannot get the bus name from the NoReply exception # def test_dbus_service_timeout_notrunning(self): # '''DBus.Error.NoReply with a crashing method''' # # # run our own mock service with a crashing method # subprocess.call(['killall', 'gvfsd-metadata']) # service = subprocess.Popen([os.getenv('PYTHON', 'python3')], # stdin=subprocess.PIPE, # universal_newlines=True) # service.stdin.write('''import os # import dbus, dbus.service, dbus.mainloop.glib # from gi.repository import GLib # # class MockMetadata(dbus.service.Object): # @dbus.service.method('com.ubuntu.Test', in_signature='', out_signature='i') # def Crash(self): # os.kill(os.getpid(), 5) # # dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) # dbus_name = dbus.service.BusName('org.gtk.vfs.Metadata', dbus.SessionBus()) # svr = MockMetadata(bus_name=dbus_name, object_path='/org/gtk/vfs/metadata') # GLib.MainLoop().run() # ''') # service.stdin.close() # self.addCleanup(service.terminate) # time.sleep(0.5) # # self._test_crash(extracode='''import dbus # obj = dbus.SessionBus().get_object('org.gtk.vfs.Metadata', '/org/gtk/vfs/metadata') # assert obj # dbus.Interface(obj, 'com.ubuntu.Test').Crash() # ''') # # pr = self._load_report() # self.assertTrue('org.freedesktop.DBus.Error.NoReply' in pr['Traceback'], pr['Traceback']) # self.assertTrue(pr['DbusErrorAnalysis'].startswith('provided by /usr/share/dbus-1/services/gvfs-metadata.service'), # pr['DbusErrorAnalysis']) # self.assertTrue('gvfsd-metadata is not running' in pr['DbusErrorAnalysis'], pr['DbusErrorAnalysis']) def test_dbus_service_other_error(self): '''Other DBusExceptions get an unwrapped original exception''' self._test_crash(extracode='''import dbus obj = dbus.SessionBus().get_object('org.gtk.vfs.Daemon', '/org/gtk/vfs/Daemon') dbus.Interface(obj, 'org.gtk.vfs.Daemon').Nonexisting(1) ''') pr = self._load_report() self.assertTrue(pr['Traceback'].startswith('Traceback'), pr['Traceback']) self.assertIn('org.freedesktop.DBus.Error.UnknownMethod', pr['Traceback']) self.assertNotIn('DbusErrorAnalysis', pr) # we expect it to unwrap the actual exception from the DBusException self.assertIn('dbus.exceptions.DBusException(org.freedesktop.DBus.Error.UnknownMethod):', pr.crash_signature()) def test_generic_os_error(self): '''OSError with errno and no known subclass''' self._test_crash(extracode='''def g(): raise OSError(99, 'something bad') g()''') pr = self._load_report() # we expect it to append errno exe = pr['ExecutablePath'] self.assertEqual(pr.crash_signature(), '%s:OSError(99):%s@11:g' % (exe, exe)) def test_generic_os_error_no_errno(self): '''OSError without errno and no known subclass''' self._test_crash(extracode='''def g(): raise OSError('something bad') g()''') pr = self._load_report() # we expect it to not stumble over the missing errno exe = pr['ExecutablePath'] self.assertEqual(pr.crash_signature(), '%s:OSError:%s@11:g' % (exe, exe)) def test_subclassed_os_error(self): '''OSError with known subclass''' self._test_crash(extracode='''def g(): raise OSError(2, 'no such file /notexisting') g()''') pr = self._load_report() # we expect it to not append errno, as it's already encoded in the subclass exe = pr['ExecutablePath'] self.assertEqual(pr.crash_signature(), '%s:FileNotFoundError:%s@11:g' % (exe, exe)) def _load_report(self): '''Ensure that there is exactly one crash report and load it''' reports = apport.fileutils.get_new_reports() self.assertEqual(len(reports), 1, 'crashed Python program produced a report') pr = apport.Report() with open(reports[0], 'rb') as f: pr.load(f) return pr unittest.main() �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_recoverable_problem.py�����������������������������������������������������0000664�0000000�0000000�00000006462�14416105132�016460� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Test recoverable_problem''' # Copyright (C) 2012 Canonical Ltd. # Author: Evan Dandrea <ev@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import unittest import sys import os import subprocess import tempfile import time import shutil import apport.report class T(unittest.TestCase): def setUp(self): self.report_dir = tempfile.mkdtemp() self.addCleanup(shutil.rmtree, self.report_dir) os.environ['APPORT_REPORT_DIR'] = self.report_dir self.datadir = os.environ.get('APPORT_DATA_DIR', '/usr/share/apport') def wait_for_report(self): base = os.path.abspath(sys.argv[0]).replace('/', '_') path = os.path.join(self.report_dir, '%s.%d.crash' % (base, os.getuid())) seconds = 0 while not os.path.exists(path): time.sleep(1) seconds += 1 self.assertTrue(seconds < 10, 'timeout while waiting for %s to be created.' % path) return path def call_recoverable_problem(self, data): cmd = ['%s/recoverable_problem' % self.datadir] proc = subprocess.Popen(cmd, stdin=subprocess.PIPE, stderr=subprocess.PIPE) err = proc.communicate(data.encode('UTF-8'))[1] if proc.returncode != 0: self.assertNotEqual(err, b'') # we expect some error message raise subprocess.CalledProcessError(proc.returncode, cmd[0]) self.assertEqual(err, b'') def test_recoverable_problem(self): '''recoverable_problem with valid data''' self.call_recoverable_problem('hello\0there') path = self.wait_for_report() with open(path, 'rb') as report_path: report = apport.report.Report() report.load(report_path) self.assertEqual(report['hello'], 'there') self.assertTrue('Pid:\t%d' % os.getpid() in report['ProcStatus']) def test_recoverable_problem_dupe_sig(self): '''recoverable_problem duplicate signature includes ExecutablePath''' self.call_recoverable_problem('Package\0test\0DuplicateSignature\0ds') path = self.wait_for_report() with open(path, 'rb') as report_path: report = apport.report.Report() report.load(report_path) exec_path = report.get('ExecutablePath') self.assertEqual(report['DuplicateSignature'], '%s:ds' % (exec_path)) self.assertTrue('Pid:\t%d' % os.getpid() in report['ProcStatus']) def test_invalid_data(self): '''recoverable_problem with invalid data''' self.assertRaises(subprocess.CalledProcessError, self.call_recoverable_problem, 'hello') self.assertRaises(subprocess.CalledProcessError, self.call_recoverable_problem, 'hello\0there\0extraneous') self.assertRaises(subprocess.CalledProcessError, self.call_recoverable_problem, 'hello\0\0there') unittest.main() ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_report.py������������������������������������������������������������������0000664�0000000�0000000�00000311773�14416106601�013770� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# coding: UTF-8 import unittest, shutil, time, tempfile, os, subprocess, grp, atexit, sys import mock, signal, resource try: from cStringIO import StringIO StringIO # pyflakes except ImportError: from io import StringIO import apport.report import problem_report import apport.packaging have_twistd = subprocess.call(['which', 'twistd'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) == 0 class T(unittest.TestCase): def test_add_package_info(self): '''add_package_info().''' # determine bash version bashversion = apport.packaging.get_version('bash') pr = apport.report.Report() pr.add_package_info('bash') self.assertEqual(pr['Package'], 'bash ' + bashversion.strip()) self.assertEqual(pr['SourcePackage'], 'bash') self.assertIn('libc', pr['Dependencies']) # test without specifying a package, but with ExecutablePath pr = apport.report.Report() self.assertRaises(KeyError, pr.add_package_info) pr['ExecutablePath'] = '/bin/bash' pr.add_package_info() self.assertEqual(pr['Package'], 'bash ' + bashversion.strip()) self.assertEqual(pr['SourcePackage'], 'bash') self.assertIn('libc', pr['Dependencies']) # check for stray empty lines self.assertNotIn('\n\n', pr['Dependencies']) self.assertIn('PackageArchitecture', pr) pr = apport.report.Report() pr['ExecutablePath'] = '/nonexisting' pr.add_package_info() self.assertNotIn('Package', pr) def test_add_os_info(self): '''add_os_info().''' pr = apport.report.Report() pr.add_os_info() self.assertTrue(pr['Uname'].startswith('Linux')) self.assertTrue(hasattr(pr['DistroRelease'], 'startswith')) self.assertGreater(len(pr['DistroRelease']), 5) self.assertNotEqual(pr['Architecture'], '') # does not overwrite an already existing uname pr['Uname'] = 'foonux 1.2' dr = pr['DistroRelease'] del pr['DistroRelease'] pr.add_os_info() self.assertEqual(pr['Uname'], 'foonux 1.2') self.assertEqual(pr['DistroRelease'], dr) def test_add_user_info(self): '''add_user_info().''' pr = apport.report.Report() pr.add_user_info() self.assertIn('UserGroups', pr) # double-check that user group names are removed for g in pr['UserGroups'].split(): if g == 'N/A': continue self.assertLess(grp.getgrnam(g).gr_gid, 1000) self.assertNotIn(grp.getgrgid(os.getgid()).gr_name, pr['UserGroups']) def test_add_proc_info(self): '''add_proc_info().''' # check without additional safe environment variables pr = apport.report.Report() self.assertEqual(pr.pid, None) pr.add_proc_info() self.assertEqual(pr.pid, os.getpid()) self.assertTrue(set(['ProcEnviron', 'ProcMaps', 'ProcCmdline', 'ProcMaps']).issubset(set(pr.keys())), 'report has required fields') if 'LANG' in os.environ: self.assertIn('LANG=' + os.environ['LANG'], pr['ProcEnviron']) else: self.assertNotIn('LANG=', pr['ProcEnviron']) self.assertNotIn('USER', pr['ProcEnviron']) self.assertNotIn('PWD', pr['ProcEnviron']) self.assertIn('report.py', pr['ExecutablePath']) self.assertEqual(int(pr['ExecutableTimestamp']), int(os.stat(__file__).st_mtime)) # check with one additional safe environment variable pr = apport.report.Report() pr.add_proc_info(extraenv=['PWD']) self.assertNotIn('USER', pr['ProcEnviron']) if 'PWD' in os.environ: self.assertIn('PWD=' + os.environ['PWD'], pr['ProcEnviron']) # check process from other user restore_root = False if os.getuid() == 0: # temporarily drop to normal user "mail" os.setresuid(8, 8, -1) restore_root = True pr = apport.report.Report() self.assertRaises(ValueError, pr.add_proc_info, 1) # EPERM for init process if restore_root: os.setresuid(0, 0, -1) self.assertEqual(pr.pid, 1) self.assertIn('Pid:\t1', pr['ProcStatus']) self.assertTrue(pr['ProcEnviron'].startswith('Error:'), pr['ProcEnviron']) self.assertNotIn('InterpreterPath', pr) # check escaping of ProcCmdline p = subprocess.Popen(['cat', '/foo bar', '\\h', '\\ \\', '-'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) assert p.pid # wait until /proc/pid/cmdline exists while True: with open('/proc/%i/cmdline' % p.pid) as fd: if fd.read(): break time.sleep(0.1) pr = apport.report.Report() pr.add_proc_info(pid=p.pid) self.assertEqual(pr.pid, p.pid) p.communicate(b'\n') self.assertEqual(pr['ProcCmdline'], 'cat /foo\\ bar \\\\h \\\\\\ \\\\ -') self.assertEqual(pr['ExecutablePath'], '/usr/bin/cat') self.assertNotIn('InterpreterPath', pr) self.assertIn('/bin/cat', pr['ProcMaps']) self.assertIn('[stack]', pr['ProcMaps']) # check correct handling of executable symlinks assert os.path.islink('/bin/sh'), '/bin/sh needs to be a symlink for this test' p = subprocess.Popen(['sh'], stdin=subprocess.PIPE) assert p.pid # wait until /proc/pid/cmdline exists while True: with open('/proc/%i/cmdline' % p.pid) as fd: if fd.read(): break time.sleep(0.1) pr = apport.report.Report() pr.pid = p.pid pr.add_proc_info() p.communicate(b'exit\n') self.assertFalse('InterpreterPath' in pr, pr.get('InterpreterPath')) self.assertEqual(pr['ExecutablePath'], os.path.realpath('/bin/sh')) self.assertEqual(int(pr['ExecutableTimestamp']), int(os.stat(os.path.realpath('/bin/sh')).st_mtime)) # check correct handling of interpreted executables: shell p = subprocess.Popen(['zgrep', 'foo'], stdin=subprocess.PIPE) assert p.pid # wait until /proc/pid/cmdline exists while True: with open('/proc/%i/cmdline' % p.pid) as fd: if fd.read(): break time.sleep(0.1) pr = apport.report.Report() pr.add_proc_info(pid=p.pid) p.communicate(b'\n') self.assertTrue(pr['ExecutablePath'].endswith('bin/zgrep')) with open(pr['ExecutablePath']) as fd: self.assertEqual(pr['InterpreterPath'], os.path.realpath(fd.readline().strip()[2:])) self.assertEqual(int(pr['ExecutableTimestamp']), int(os.stat(pr['ExecutablePath']).st_mtime)) self.assertIn('[stack]', pr['ProcMaps']) # check correct handling of interpreted executables: python (fd, testscript) = tempfile.mkstemp() os.write(fd, ('''#!/usr/bin/%s import sys sys.stdin.readline() ''' % os.getenv('PYTHON', 'python3')).encode('ascii')) os.close(fd) os.chmod(testscript, 0o755) p = subprocess.Popen([testscript], stdin=subprocess.PIPE, stderr=subprocess.PIPE) assert p.pid # wait until /proc/pid/cmdline exists while True: with open('/proc/%i/cmdline' % p.pid) as fd: if fd.read(): break time.sleep(0.1) pr = apport.report.Report() pr.add_proc_info(pid=p.pid) p.communicate(b'\n') self.assertEqual(pr['ExecutablePath'], testscript) self.assertEqual(int(pr['ExecutableTimestamp']), int(os.stat(testscript).st_mtime)) os.unlink(testscript) self.assertIn('python', pr['InterpreterPath']) self.assertIn('python', pr['ProcMaps']) self.assertIn('[stack]', pr['ProcMaps']) # test process is gone, should complain about nonexisting PID self.assertRaises(ValueError, pr.add_proc_info, p.pid) def test_add_proc_info_nonascii(self): '''add_proc_info() for non-ASCII values''' lang = b'n\xc3\xb6_v\xc3\xb8lid' # one variable from each category (ignored/filtered/shown) p = subprocess.Popen(['cat'], stdin=subprocess.PIPE, env={'MYNAME': b'J\xc3\xbcrgen-Ren\xc3\xa9', 'XDG_RUNTIME_DIR': b'/a\xc3\xafb', 'LANG': lang}) time.sleep(0.1) r = apport.report.Report() r.add_proc_environ(pid=p.pid) p.communicate(b'') self.assertIn(lang, r['ProcEnviron'].encode('UTF-8')) self.assertIn('XDG_RUNTIME_DIR=<set>', r['ProcEnviron']) def test_add_proc_info_current_desktop(self): '''add_proc_info() CurrentDesktop''' p = subprocess.Popen(['cat'], stdin=subprocess.PIPE, env={'LANG': 'xx_YY.UTF-8'}) time.sleep(0.1) r = apport.report.Report() r.add_proc_info(pid=p.pid) p.communicate(b'') self.assertEqual(r['ProcEnviron'], 'LANG=xx_YY.UTF-8') self.assertFalse('CurrentDesktop' in r, r) p = subprocess.Popen(['cat'], stdin=subprocess.PIPE, env={'LANG': 'xx_YY.UTF-8', 'XDG_CURRENT_DESKTOP': 'Pixel Pusher'}) time.sleep(0.1) r = apport.report.Report() r.add_proc_info(pid=p.pid) p.communicate(b'') self.assertEqual(r['ProcEnviron'], 'LANG=xx_YY.UTF-8') self.assertEqual(r['CurrentDesktop'], 'Pixel Pusher') def test_add_path_classification(self): '''classification of $PATH.''' # system default p = subprocess.Popen(['cat'], stdin=subprocess.PIPE, env={'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'}) time.sleep(0.1) r = apport.report.Report() r.add_proc_environ(pid=p.pid) p.communicate(b'') self.assertFalse('PATH' in r['ProcEnviron'], 'system default $PATH should be filtered out') # no user paths p = subprocess.Popen(['cat'], stdin=subprocess.PIPE, env={'PATH': '/usr/sbin:/usr/bin:/sbin:/bin'}) time.sleep(0.1) r = apport.report.Report() r.add_proc_environ(pid=p.pid) p.communicate(b'') self.assertIn('PATH=(custom, no user)', r['ProcEnviron']) # user paths p = subprocess.Popen(['cat'], stdin=subprocess.PIPE, env={'PATH': '/home/pitti:/usr/sbin:/usr/bin:/sbin:/bin'}) time.sleep(0.1) r = apport.report.Report() r.add_proc_environ(pid=p.pid) p.communicate(b'') self.assertIn('PATH=(custom, user)', r['ProcEnviron']) def test_check_interpreted(self): '''_check_interpreted().''' restore_root = False if os.getuid() == 0: # temporarily drop to normal user "mail" os.setresuid(8, 8, -1) restore_root = True try: # standard ELF binary f = tempfile.NamedTemporaryFile() pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/gedit' pr['ProcStatus'] = 'Name:\tgedit' pr['ProcCmdline'] = 'gedit\0/' + f.name pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/bin/gedit') self.assertFalse('InterpreterPath' in pr) f.close() # bogus argv[0] pr = apport.report.Report() pr['ExecutablePath'] = '/bin/dash' pr['ProcStatus'] = 'Name:\tznonexisting' pr['ProcCmdline'] = 'nonexisting\0/foo' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/bin/dash') self.assertFalse('InterpreterPath' in pr) # standard sh script pr = apport.report.Report() pr['ExecutablePath'] = '/bin/dash' pr['ProcStatus'] = 'Name:\tzgrep' pr['ProcCmdline'] = '/bin/sh\0/bin/zgrep\0foo' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/bin/zgrep') self.assertEqual(pr['InterpreterPath'], '/bin/dash') # standard sh script when being called explicitly with interpreter pr = apport.report.Report() pr['ExecutablePath'] = '/bin/dash' pr['ProcStatus'] = 'Name:\tdash' pr['ProcCmdline'] = '/bin/sh\0/bin/zgrep\0foo' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/bin/zgrep') self.assertEqual(pr['InterpreterPath'], '/bin/dash') # special case mono scheme: beagled-helper (use zgrep to make the test # suite work if mono or beagle are not installed) pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/mono' pr['ProcStatus'] = 'Name:\tzgrep' pr['ProcCmdline'] = 'zgrep\0--debug\0/bin/zgrep' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/bin/zgrep') self.assertEqual(pr['InterpreterPath'], '/usr/bin/mono') # special case mono scheme: banshee (use zgrep to make the test # suite work if mono or beagle are not installed) pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/mono' pr['ProcStatus'] = 'Name:\tzgrep' pr['ProcCmdline'] = 'zgrep\0/bin/zgrep' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/bin/zgrep') self.assertEqual(pr['InterpreterPath'], '/usr/bin/mono') # fail on files we shouldn't have access to when name!=argv[0] pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python' pr['ProcStatus'] = 'Name:\tznonexisting' pr['ProcCmdline'] = 'python\0/etc/shadow' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/bin/python') self.assertFalse('InterpreterPath' in pr) # succeed on files we should have access to when name!=argv[0] pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python' pr['ProcStatus'] = 'Name:\tznonexisting' pr['ProcCmdline'] = 'python\0/etc/passwd' pr._check_interpreted() self.assertEqual(pr['InterpreterPath'], '/usr/bin/python') self.assertEqual(pr['ExecutablePath'], '/etc/passwd') # fail on files we shouldn't have access to when name==argv[0] pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python' pr['ProcStatus'] = 'Name:\tshadow' pr['ProcCmdline'] = '../etc/shadow' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/bin/python') self.assertFalse('InterpreterPath' in pr) # succeed on files we should have access to when name==argv[0] pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python' pr['ProcStatus'] = 'Name:\tpasswd' pr['ProcCmdline'] = '../../etc/passwd' pr._check_interpreted() self.assertEqual(pr['InterpreterPath'], '/usr/bin/python') self.assertEqual(pr['ExecutablePath'], '/usr/bin/../../etc/passwd') # interactive python process pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python' pr['ProcStatus'] = 'Name:\tpython' pr['ProcCmdline'] = 'python' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/bin/python') self.assertFalse('InterpreterPath' in pr) # python script (abuse /bin/bash since it must exist) pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python' pr['ProcStatus'] = 'Name:\tbash' pr['ProcCmdline'] = 'python\0/bin/bash' pr._check_interpreted() self.assertEqual(pr['InterpreterPath'], '/usr/bin/python') self.assertEqual(pr['ExecutablePath'], '/usr/bin/bash') # python script with options (abuse /bin/bash since it must exist) pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python' pr['ProcStatus'] = 'Name:\tbash' pr['ProcCmdline'] = 'python\0-OO\0/bin/bash' pr._check_interpreted() self.assertEqual(pr['InterpreterPath'], '/usr/bin/python') self.assertEqual(pr['ExecutablePath'], '/usr/bin/bash') # python script with a versioned interpreter pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python2.7' pr['ProcStatus'] = 'Name:\tbash' pr['ProcCmdline'] = '/usr/bin/python\0/bin/bash' pr._check_interpreted() self.assertEqual(pr['InterpreterPath'], '/usr/bin/python2.7') self.assertEqual(pr['ExecutablePath'], '/usr/bin/bash') # python script through -m pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python2.7' pr['ProcStatus'] = 'Name:\tpython' pr['ProcCmdline'] = 'python\0-tt\0-m\0apport/report\0-v' pr._check_interpreted() self.assertEqual(pr['InterpreterPath'], '/usr/bin/python2.7') self.assertIn('report', pr['ExecutablePath']) # python script through -m, with dot separator; top-level module pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python3' pr['ProcStatus'] = 'Name:\tpython3' pr['ProcCmdline'] = 'python\0-m\0re\0install' pr._check_interpreted() self.assertEqual(pr['InterpreterPath'], '/usr/bin/python3') self.assertIn('re.py', pr['ExecutablePath']) # python script through -m, with dot separator; sub-level module pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python3' pr['ProcStatus'] = 'Name:\tpython3' pr['ProcCmdline'] = 'python\0-m\0distutils.cmd\0foo' pr._check_interpreted() self.assertEqual(pr['InterpreterPath'], '/usr/bin/python3') self.assertIn('distutils/cmd.py', pr['ExecutablePath']) finally: if restore_root: os.setresuid(0, 0, -1) def test_check_interpreted_no_exec(self): '''_check_interpreted() does not run module code''' # python script through -m, with dot separator; top-level module pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python' pr['ProcStatus'] = 'Name:\tpython' pr['ProcCmdline'] = 'python\0-m\0unittest.__main__' orig_argv = sys.argv try: sys.argv = ['/usr/bin/python', '-m', 'unittest.__main__'] pr._check_interpreted() finally: sys.argv = orig_argv self.assertTrue(pr['ExecutablePath'].endswith('unittest/__main__.py'), pr['ExecutablePath']) self.assertEqual(pr['InterpreterPath'], '/usr/bin/python') self.assertNotIn('UnreportableReason', pr) @unittest.skipUnless(have_twistd, 'twisted is not installed') def test_check_interpreted_twistd(self): '''_check_interpreted() for programs ran through twistd''' # LP#761374 pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python2.7' pr['ProcStatus'] = 'Name:\ttwistd' pr['ProcCmdline'] = '/usr/bin/python\0/usr/bin/twistd\0--uid\0root\0--gid\0root\0--pidfile\0/var/run/nanny.pid\0-r\0glib2\0--logfile\0/var/log/nanny.log\0-y\0/usr/share/nanny/daemon/nanny.tap' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/share/nanny/daemon/nanny.tap') self.assertEqual(pr['InterpreterPath'], '/usr/bin/twistd') # LP#625039 pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python2.7' pr['ProcStatus'] = 'Name:\ttwistd' pr['ProcCmdline'] = '/usr/bin/python\0/usr/bin/twistd\0--pidfile=/var/run/apt-p2p//apt-p2p.pid\0--rundir=/var/run/apt-p2p/\0--python=/usr/sbin/apt-p2p\0--logfile=/var/log/apt-p2p.log\0--no_save' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/sbin/apt-p2p') self.assertEqual(pr['InterpreterPath'], '/usr/bin/twistd') # somewhere from LP#755025 pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python2.7' pr['ProcStatus'] = 'Name:\ttwistd' pr['ProcCmdline'] = '/usr/bin/python\0/usr/bin/twistd\0-r\0gtk2\0--pidfile\0/tmp/vmc.pid\0-noy\0/usr/share/vodafone-mobile-connect/gtk-tap.py\0-l\0/dev/null' pr._check_interpreted() self.assertEqual(pr['ExecutablePath'], '/usr/share/vodafone-mobile-connect/gtk-tap.py') self.assertEqual(pr['InterpreterPath'], '/usr/bin/twistd') # LP#725383 -> not practical to determine file here pr = apport.report.Report() pr['ExecutablePath'] = '/usr/bin/python2.7' pr['ProcStatus'] = 'Name:\ttwistd' pr['ProcCmdline'] = '/usr/bin/python\0/usr/bin/twistd\0--pidfile=/var/run/poker-network-server.pid\0--logfile=/var/log/poker-network-server.log\0--no_save\0--reactor=poll\0pokerserver' pr._check_interpreted() self.assertIn('ExecutablePath', pr) self.assertIn('UnreportableReason', pr) self.assertEqual(pr['InterpreterPath'], '/usr/bin/twistd') @classmethod def _generate_sigsegv_report(klass, file=None, signal='11', code=''' int f(int x) { int* p = 0; *p = x; return x+1; } int main() { return f(42); } '''): '''Create a test executable which will die with a SIGSEGV, generate a core dump for it, create a problem report with those two arguments (ExecutablePath and CoreDump) and call add_gdb_info(). If file is given, the report is written into it. Return the apport.report.Report.''' workdir = None orig_cwd = os.getcwd() pr = apport.report.Report() try: workdir = tempfile.mkdtemp() atexit.register(shutil.rmtree, workdir) os.chdir(workdir) # create a test executable with open('crash.c', 'w') as fd: fd.write(code) assert subprocess.call(['gcc', '-g', 'crash.c', '-o', 'crash']) == 0 assert os.path.exists('crash') # call it through gdb and dump core gdb = subprocess.Popen(['gdb', '--batch', '--ex', 'run', '--ex', 'generate-core-file core', './crash'], stdout=subprocess.PIPE) gdb.communicate() klass._validate_core('core') pr['ExecutablePath'] = os.path.join(workdir, 'crash') pr['CoreDump'] = (os.path.join(workdir, 'core'),) pr['Signal'] = signal pr.add_gdb_info() if file: pr.write(file) file.flush() finally: os.chdir(orig_cwd) return pr @classmethod def _validate_core(klass, core_path): subprocess.check_call(['sync']) count = 0 while count < 21: if os.path.exists(core_path): break time.sleep(0.5) count += 1 assert os.path.exists(core_path) readelf = subprocess.Popen(['readelf', '-n', core_path], stdout=subprocess.PIPE) readelf.communicate() assert readelf.returncode == 0 def _validate_gdb_fields(self, pr): self.assertIn('Stacktrace', pr) self.assertIn('ThreadStacktrace', pr) self.assertIn('StacktraceTop', pr) self.assertIn('Registers', pr) self.assertIn('Disassembly', pr) self.assertNotIn('(no debugging symbols found)', pr['Stacktrace']) self.assertNotIn('Core was generated by', pr['Stacktrace']) self.assertNotRegex(pr['Stacktrace'], r'(?s)(^|.*\n)#0 [^\n]+\n#0 ') self.assertIn('#0 ', pr['Stacktrace']) self.assertRegex(pr['Stacktrace'], r'#[123] 0x') self.assertIn('#0 ', pr['ThreadStacktrace']) self.assertRegex(pr['ThreadStacktrace'], r'#[123] 0x') self.assertIn('Thread 1 (', pr['ThreadStacktrace']) self.assertLessEqual(len(pr['StacktraceTop'].splitlines()), 5) def test_add_gdb_info(self): '''add_gdb_info() with core dump file reference.''' pr = apport.report.Report() # should not throw an exception for missing fields pr.add_gdb_info() # normal crash pr = self._generate_sigsegv_report() self._validate_gdb_fields(pr) self.assertEqual(pr['StacktraceTop'], 'f (x=42) at crash.c:3\nmain () at crash.c:6', pr['StacktraceTop']) self.assertFalse('AssertionMessage' in pr) # crash where gdb generates output on stderr pr = self._generate_sigsegv_report(code=''' int main() { void (*function)(void); function = 0; function(); } ''') self._validate_gdb_fields(pr) self.assertNotEqual(pr['Disassembly'], '') self.assertNotIn('AssertionMessage', pr) def test_add_gdb_info_load(self): '''add_gdb_info() with inline core dump.''' rep = tempfile.NamedTemporaryFile() self._generate_sigsegv_report(rep) rep.seek(0) pr = apport.report.Report() with open(rep.name, 'rb') as f: pr.load(f) pr.add_gdb_info() self._validate_gdb_fields(pr) def test_add_gdb_info_damaged(self): '''add_gdb_info() with damaged core dump''' pr = self._generate_sigsegv_report() del pr['Stacktrace'] del pr['StacktraceTop'] del pr['ThreadStacktrace'] del pr['Disassembly'] # truncate core file os.truncate(pr['CoreDump'][0], 10000) self.assertRaises(IOError, pr.add_gdb_info) self.assertNotIn('Stacktrace', pr) self.assertNotIn('StacktraceTop', pr) self.assertIn('not a core dump: file truncated', pr['UnreportableReason']) def test_add_gdb_info_short_core_file(self): '''add_gdb_info() with damaged core dump in gzip file''' pr = self._generate_sigsegv_report() del pr['Stacktrace'] del pr['StacktraceTop'] del pr['ThreadStacktrace'] del pr['Disassembly'] core = pr['CoreDump'][0] os.truncate(core, 10000) with open(core, 'rb') as f: pr['CoreDump'] = problem_report.CompressedValue(f.read()) self.assertRaises(OSError, pr.add_gdb_info) self.assertNotIn('Stacktrace', pr) self.assertNotIn('StacktraceTop', pr) self.assertTrue(pr['UnreportableReason'].startswith( 'Invalid core dump')) @mock.patch("gzip.GzipFile.read") def test_add_gdb_info_damaged_gz_core(self, mock_gzread): '''add_gdb_info() with damaged gzip file of core dump''' pr = self._generate_sigsegv_report() del pr['Stacktrace'] del pr['StacktraceTop'] del pr['ThreadStacktrace'] del pr['Disassembly'] core = pr['CoreDump'][0] with open(core, 'rb') as f: pr['CoreDump'] = problem_report.CompressedValue(f.read()) mock_gzread.side_effect = EOFError("Compressed file ended before the " "end-of-stream marker was reached") self.assertRaises(EOFError, pr.add_gdb_info) self.assertTrue(mock_gzread.called) self.assertNotIn('Stacktrace', pr) self.assertNotIn('StacktraceTop', pr) def test_add_gdb_info_exe_missing(self): '''add_gdb_info() with missing executable''' pr = self._generate_sigsegv_report() # change it to something that doesn't exist pr['ExecutablePath'] = pr['ExecutablePath'].replace('crash', 'gone') self.assertRaises(FileNotFoundError, pr.add_gdb_info) def test_add_zz_parse_segv_details(self): '''parse-segv produces sensible results''' rep = tempfile.NamedTemporaryFile() self._generate_sigsegv_report(rep) rep.seek(0) pr = apport.report.Report() with open(rep.name, 'rb') as f: pr.load(f) pr['Signal'] = '1' pr.add_hooks_info('fake_ui') self.assertNotIn('SegvAnalysis', pr) pr = apport.report.Report() with open(rep.name, 'rb') as f: pr.load(f) pr.add_hooks_info('fake_ui') self.assertIn('Skipped: missing required field "Architecture"', pr['SegvAnalysis']) pr.add_os_info() pr.add_hooks_info('fake_ui') self.assertIn('Skipped: missing required field "ProcMaps"', pr['SegvAnalysis']) pr.add_proc_info() pr.add_hooks_info('fake_ui') if pr['Architecture'] in ['amd64', 'i386']: # data/general-hooks/parse_segv.py only runs for x86 and x86_64 self.assertIn('not located in a known VMA region', pr['SegvAnalysis']) def test_add_gdb_info_script(self): '''add_gdb_info() with a script.''' # This needs to handle different bash locations across releases # to get the core filename right shell = os.path.realpath('/bin/bash') (fd, script) = tempfile.mkstemp() try: os.close(fd) # create a test script which produces a core dump for us with open(script, 'w') as fd: fd.write('''#!%s cd `dirname $0` ulimit -c unlimited kill -SEGV $$ ''' % shell) os.chmod(script, 0o755) # call script and verify that it gives us a proper ELF core dump pid = os.fork() if pid == 0: os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stdout.fileno()) sys.stdin.close() os.setsid() resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) os.chdir(apport.fileutils.report_dir) os.execv(script, [script]) assert False, 'Could not execute ' + script time.sleep(0.5) (core_name, core_path) = apport.fileutils.get_core_path(pid, shell) os.kill(pid, signal.SIGSEGV) os.waitpid(pid, 0) # Otherwise the core dump is empty. time.sleep(0.5) self._validate_core(core_path) pr = apport.report.Report() pr['InterpreterPath'] = '/bin/bash' pr['ExecutablePath'] = script pr['CoreDump'] = (core_path,) pr.add_gdb_info() finally: os.unlink(script) self._validate_gdb_fields(pr) self.assertIn('in kill_builtin', pr['Stacktrace']) def test_add_gdb_info_abort(self): '''add_gdb_info() with SIGABRT/assert() If these come from an assert(), the report should have the assertion message. Otherwise it should be marked as not reportable. ''' # abort with assert (fd, script) = tempfile.mkstemp() script_bin = script + '.bin' try: os.close(fd) # create a test script which produces a core dump for us with open(script, 'w') as fd: fd.write('''#!/bin/sh gcc -o $0.bin -x c - <<EOF #include <assert.h> int main() { assert(1 < 0); } EOF ''') os.chmod(script, 0o755) # build the crashing binary subprocess.call([script]) # call binary and verify that it gives us a proper ELF core dump pid = os.fork() if pid == 0: os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stdout.fileno()) sys.stdin.close() os.setsid() resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) os.chdir(apport.fileutils.report_dir) os.execv(script_bin, [script_bin]) assert False, 'Could not execute ' + script_bin time.sleep(0.5) (core_name, core_path) = apport.fileutils.get_core_path(pid, script_bin) os.kill(pid, signal.SIGSEGV) os.waitpid(pid, 0) # Otherwise the core dump is empty. time.sleep(0.5) self._validate_core(core_path) pr = apport.report.Report() pr['ExecutablePath'] = script_bin pr['CoreDump'] = (core_path,) pr.add_gdb_info() finally: os.unlink(script) os.unlink(script_bin) self._validate_gdb_fields(pr) self.assertIn("<stdin>:2: main: Assertion `1 < 0' failed.", pr['AssertionMessage']) self.assertFalse(pr['AssertionMessage'].startswith('$'), pr['AssertionMessage']) self.assertNotIn('= 0x', pr['AssertionMessage']) self.assertFalse(pr['AssertionMessage'].endswith('\\n'), pr['AssertionMessage']) # abort with internal error (fd, script) = tempfile.mkstemp() script_bin = script + '.bin' try: os.close(fd) # create a test script which produces a core dump for us with open(script, 'w') as fd: fd.write('''#!/bin/sh gcc -O2 -D_FORTIFY_SOURCE=2 -o $0.bin -x c - <<EOF #include <string.h> int main(int argc, char *argv[]) { char buf[8]; strcpy(buf, argv[1]); return 0; } EOF ''') os.chmod(script, 0o755) # build the crashing binary subprocess.call([script]) # call binary and verify that it gives us a proper ELF core dump pid = os.fork() if pid == 0: os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stdout.fileno()) sys.stdin.close() os.setsid() resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) os.chdir(apport.fileutils.report_dir) os.execv(script_bin, [script_bin, 'aaaaaaaaaaaaaaaa']) assert False, 'Could not execute ' + script_bin time.sleep(0.5) (core_name, core_path) = apport.fileutils.get_core_path(pid, script_bin) os.kill(pid, signal.SIGSEGV) os.waitpid(pid, 0) # Otherwise the core dump is empty. time.sleep(0.5) self._validate_core(core_path) pr = apport.report.Report() pr['ExecutablePath'] = script_bin pr['CoreDump'] = (core_path,) pr.add_gdb_info() finally: os.unlink(script) os.unlink(script_bin) self._validate_gdb_fields(pr) self.assertIn("** buffer overflow detected ***: terminated", pr['AssertionMessage']) self.assertFalse(pr['AssertionMessage'].startswith('$'), pr['AssertionMessage']) self.assertNotIn('= 0x', pr['AssertionMessage']) self.assertFalse(pr['AssertionMessage'].endswith('\\n'), pr['AssertionMessage']) # abort without assertion (fd, script) = tempfile.mkstemp() script_bin = script + '.bin' try: os.close(fd) # create a test script which produces a core dump for us with open(script, 'w') as fd: fd.write('''#!/bin/sh gcc -o $0.bin -x c - <<EOF #include <stdlib.h> int main() { abort(); } EOF ''') os.chmod(script, 0o755) # build the crashing binary subprocess.call([script]) # call binary and verify that it gives us a proper ELF core dump pid = os.fork() if pid == 0: os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stdout.fileno()) sys.stdin.close() os.setsid() resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) os.chdir(apport.fileutils.report_dir) os.execv(script_bin, [script_bin]) assert False, 'Could not execute ' + script_bin time.sleep(0.5) (core_name, core_path) = apport.fileutils.get_core_path(pid, script_bin) os.kill(pid, signal.SIGSEGV) os.waitpid(pid, 0) # Otherwise the core dump is empty. time.sleep(0.5) self._validate_core(core_path) pr = apport.report.Report() pr['ExecutablePath'] = script_bin pr['CoreDump'] = (core_path,) pr.add_gdb_info() finally: os.unlink(script) os.unlink(script_bin) self._validate_gdb_fields(pr) self.assertFalse('AssertionMessage' in pr, pr.get('AssertionMessage')) # disabled: __glib_assert_msg symbol not available (LP: #1689344) def disabled_test_add_gdb_info_abort_glib(self): '''add_gdb_info() with glib assertion''' (fd, script) = tempfile.mkstemp() assert not os.path.exists('core') try: os.close(fd) # create a test script which produces a core dump for us with open(script, 'w') as fd: fd.write('''#!/bin/sh gcc -o $0.bin -x c - `pkg-config --cflags --libs glib-2.0` <<EOF #include <glib.h> int main() { g_assert_cmpint(1, <, 0); } EOF ulimit -c unlimited $0.bin 2>/dev/null ''') # call script and verify that it gives us a proper ELF core dump assert subprocess.call(['/bin/sh', script]) != 0 self._validate_core('core') pr = apport.report.Report() pr['ExecutablePath'] = script + '.bin' pr['CoreDump'] = ('core',) pr.add_gdb_info() finally: os.unlink(script) os.unlink(script + '.bin') os.unlink('core') self._validate_gdb_fields(pr) self.assertTrue(pr['AssertionMessage'].startswith('ERROR:<stdin>:2:main: assertion failed (1 < 0):'), pr['AssertionMessage']) # disabled: __nih_abort_msg symbol not available (LP: #1580601) def disabled_test_add_gdb_info_abort_libnih(self): '''add_gdb_info() with libnih assertion''' (fd, script) = tempfile.mkstemp() assert not os.path.exists('core') try: os.close(fd) # create a test script which produces a core dump for us with open(script, 'w') as fd: fd.write('''#!/bin/sh gcc -o $0.bin -x c - `pkg-config --cflags --libs libnih` <<EOF #include <libnih.h> int main() { nih_assert (1 < 0); } EOF ulimit -c unlimited $0.bin 2>/dev/null ''') # call script and verify that it gives us a proper ELF core dump assert subprocess.call(['/bin/sh', script]) != 0 self._validate_core('core') pr = apport.report.Report() pr['ExecutablePath'] = script + '.bin' pr['CoreDump'] = ('core',) pr.add_gdb_info() finally: os.unlink(script) os.unlink(script + '.bin') os.unlink('core') self._validate_gdb_fields(pr) self.assertIn('Assertion failed in main: 1 < 0', pr['AssertionMessage']) def test_search_bug_patterns(self): '''search_bug_patterns().''' patterns = tempfile.NamedTemporaryFile(prefix='apport-') # create some test patterns patterns.write(b'''<?xml version="1.0"?> <patterns> <pattern url="http://bugtracker.net/bugs/1"> <re key="Package">^bash </re> <re key="Foo">ba.*r</re> </pattern> <pattern url="http://bugtracker.net/bugs/2"> <re key="Package">^bash 1-2$</re> <re key="Foo">write_(hello|goodbye)</re> </pattern> <pattern url="http://bugtracker.net/bugs/3"> <re key="Package">^coreutils </re> <re key="Bar">^1$</re> </pattern> <pattern url="http://bugtracker.net/bugs/4"> <re key="Package">^coreutils </re> <re></re> <re key="Bar">*</re> <!-- invalid RE --> <re key="broken">+[1^</re> </pattern> <pattern url="http://bugtracker.net/bugs/5"> <re key="SourcePackage">^bazaar$</re> <re key="LogFile">AssertionError</re> </pattern> <pattern url="http://bugtracker.net/bugs/6"> <re key="Package">^update-notifier</re> <re key="LogFile">AssertionError \xe2\x80\xbd</re> </pattern> </patterns>''') patterns.flush() # invalid XML invalid = tempfile.NamedTemporaryFile(prefix='apport-') invalid.write(b'''<?xml version="1.0"?> </patterns>''') invalid.flush() # create some reports r_bash = apport.report.Report() r_bash['Package'] = 'bash 1-2' r_bash['Foo'] = 'bazaar' r_bazaar = apport.report.Report() r_bazaar['Package'] = 'bazaar 2-1' r_bazaar['SourcePackage'] = 'bazaar' r_bazaar['LogFile'] = 'AssertionError' r_coreutils = apport.report.Report() r_coreutils['Package'] = 'coreutils 1' r_coreutils['Bar'] = '1' r_invalid = apport.report.Report() r_invalid['Package'] = 'invalid 1' r_unicode = apport.report.Report() r_unicode['Package'] = 'update-notifier' r_unicode['LogFile'] = b'AssertionError \xe2\x80\xbd' pattern_url = 'file://' + patterns.name # positive match cases self.assertEqual(r_bash.search_bug_patterns(pattern_url), 'http://bugtracker.net/bugs/1') r_bash['Foo'] = 'write_goodbye' self.assertEqual(r_bash.search_bug_patterns(pattern_url), 'http://bugtracker.net/bugs/2') self.assertEqual(r_coreutils.search_bug_patterns(pattern_url), 'http://bugtracker.net/bugs/3') self.assertEqual(r_bazaar.search_bug_patterns(pattern_url), 'http://bugtracker.net/bugs/5') self.assertEqual(r_unicode.search_bug_patterns(pattern_url), 'http://bugtracker.net/bugs/6') # also works for CompressedValues r_bash_compressed = r_bash.copy() r_bash_compressed['Foo'] = problem_report.CompressedValue(b'bazaar') self.assertEqual(r_bash_compressed.search_bug_patterns(pattern_url), 'http://bugtracker.net/bugs/1') # also works for binary values r_bash_utf8 = r_bash.copy() r_bash_utf8['Foo'] = b'bazaar' self.assertEqual(r_bash_utf8.search_bug_patterns(pattern_url), 'http://bugtracker.net/bugs/1') # negative match cases r_bash['Package'] = 'bash-static 1-2' self.assertEqual(r_bash.search_bug_patterns(pattern_url), None) r_bash['Package'] = 'bash 1-21' self.assertEqual(r_bash.search_bug_patterns(pattern_url), None, 'does not match on wrong bash version') r_bash['Foo'] = 'zz' self.assertEqual(r_bash.search_bug_patterns(pattern_url), None, 'does not match on wrong Foo value') r_bash['Foo'] = b'zz' self.assertEqual(r_bash.search_bug_patterns(pattern_url), None, 'does not match on wrong Foo UTF-8 value') r_bash['Foo'] = b'\x01\xFF' self.assertEqual(r_bash.search_bug_patterns(pattern_url), None, 'does not match on wrong Foo binary value') r_coreutils['Bar'] = '11' self.assertEqual(r_coreutils.search_bug_patterns(pattern_url), None, 'does not match on wrong Bar value') r_bazaar['SourcePackage'] = 'launchpad' self.assertEqual(r_bazaar.search_bug_patterns(pattern_url), None, 'does not match on wrong source package') r_bazaar['LogFile'] = '' self.assertEqual(r_bazaar.search_bug_patterns(pattern_url), None, 'does not match on empty attribute') # various errors to check for robustness (no exceptions, just None # return value) del r_coreutils['Bar'] self.assertEqual(r_coreutils.search_bug_patterns(pattern_url), None, 'does not match on nonexisting key') self.assertEqual(r_invalid.search_bug_patterns('file://' + invalid.name), None, 'gracefully handles invalid XML') r_coreutils['Package'] = 'other 2' self.assertEqual(r_bash.search_bug_patterns('file:///nonexisting/directory/'), None, 'gracefully handles nonexisting base path') # existing host, but no bug patterns self.assertEqual(r_bash.search_bug_patterns('http://security.ubuntu.com/'), None, 'gracefully handles base path without bug patterns') # nonexisting host self.assertEqual(r_bash.search_bug_patterns('http://nonexisting.domain/'), None, 'gracefully handles nonexisting URL domain') def test_add_hooks_info(self): '''add_hooks_info().''' orig_hook_dir = apport.report._hook_dir apport.report._hook_dir = tempfile.mkdtemp() orig_common_hook_dir = apport.report._common_hook_dir apport.report._common_hook_dir = tempfile.mkdtemp() try: with open(os.path.join(apport.report._hook_dir, 'foo.py'), 'w') as fd: fd.write(''' import sys def add_info(report): report['Field1'] = 'Field 1' report['Field2'] = 'Field 2\\nBla' if 'Spethial' in report: raise StopIteration ''') with open(os.path.join(apport.report._common_hook_dir, 'foo1.py'), 'w') as fd: fd.write(''' def add_info(report): report['CommonField1'] = 'CommonField 1' if report['Package'] == 'commonspethial': raise StopIteration ''') with open(os.path.join(apport.report._common_hook_dir, 'foo2.py'), 'w') as fd: fd.write(''' def add_info(report): report['CommonField2'] = 'CommonField 2' ''') with open(os.path.join(apport.report._common_hook_dir, 'foo3.py'), 'w') as fd: fd.write(''' def add_info(report, ui): report['CommonField3'] = str(ui) ''') # should only catch .py files with open(os.path.join(apport.report._common_hook_dir, 'notme'), 'w') as fd: fd.write(''' def add_info(report): report['BadField'] = 'XXX' ''') r = apport.report.Report() r['Package'] = 'bar' # should not throw any exceptions self.assertEqual(r.add_hooks_info('fake_ui'), False) self.assertEqual(set(r.keys()), set(['ProblemType', 'Date', 'Package', 'CommonField1', 'CommonField2', 'CommonField3']), 'report has required fields') r = apport.report.Report() r['Package'] = 'baz 1.2-3' # should not throw any exceptions self.assertEqual(r.add_hooks_info('fake_ui'), False) self.assertEqual(set(r.keys()), set(['ProblemType', 'Date', 'Package', 'CommonField1', 'CommonField2', 'CommonField3']), 'report has required fields') r = apport.report.Report() r['Package'] = 'foo' self.assertEqual(r.add_hooks_info('fake_ui'), False) self.assertEqual(set(r.keys()), set(['ProblemType', 'Date', 'Package', 'Field1', 'Field2', 'CommonField1', 'CommonField2', 'CommonField3']), 'report has required fields') self.assertEqual(r['Field1'], 'Field 1') self.assertEqual(r['Field2'], 'Field 2\nBla') self.assertEqual(r['CommonField1'], 'CommonField 1') self.assertEqual(r['CommonField2'], 'CommonField 2') self.assertEqual(r['CommonField3'], 'fake_ui') r = apport.report.Report() r['Package'] = 'foo 4.5-6' self.assertEqual(r.add_hooks_info('fake_ui'), False) self.assertEqual(set(r.keys()), set(['ProblemType', 'Date', 'Package', 'Field1', 'Field2', 'CommonField1', 'CommonField2', 'CommonField3']), 'report has required fields') self.assertEqual(r['Field1'], 'Field 1') self.assertEqual(r['Field2'], 'Field 2\nBla') self.assertEqual(r['CommonField1'], 'CommonField 1') self.assertEqual(r['CommonField2'], 'CommonField 2') # test hook abort r['Spethial'] = '1' self.assertEqual(r.add_hooks_info('fake_ui'), True) r = apport.report.Report() r['Package'] = 'commonspethial' self.assertEqual(r.add_hooks_info('fake_ui'), True) # source package hook with open(os.path.join(apport.report._hook_dir, 'source_foo.py'), 'w') as fd: fd.write(''' def add_info(report, ui): report['Field1'] = 'Field 1' report['Field2'] = 'Field 2\\nBla' if report['Package'] == 'spethial': raise StopIteration ''') r = apport.report.Report() r['SourcePackage'] = 'foo' r['Package'] = 'libfoo 3' self.assertEqual(r.add_hooks_info('fake_ui'), False) self.assertEqual(set(r.keys()), set(['ProblemType', 'Date', 'Package', 'SourcePackage', 'Field1', 'Field2', 'CommonField1', 'CommonField2', 'CommonField3']), 'report has required fields') self.assertEqual(r['Field1'], 'Field 1') self.assertEqual(r['Field2'], 'Field 2\nBla') self.assertEqual(r['CommonField1'], 'CommonField 1') self.assertEqual(r['CommonField2'], 'CommonField 2') self.assertEqual(r['CommonField3'], 'fake_ui') # test hook abort r['Package'] = 'spethial' self.assertEqual(r.add_hooks_info('fake_ui'), True) finally: shutil.rmtree(apport.report._hook_dir) shutil.rmtree(apport.report._common_hook_dir) apport.report._hook_dir = orig_hook_dir apport.report._common_hook_dir = orig_common_hook_dir def test_add_hooks_info_opt(self): '''add_hooks_info() for a package in /opt''' orig_hook_dir = apport.report._hook_dir apport.report._hook_dir = tempfile.mkdtemp() orig_common_hook_dir = apport.report._common_hook_dir apport.report._common_hook_dir = tempfile.mkdtemp() orig_opt_dir = apport.report._opt_dir apport.report._opt_dir = tempfile.mkdtemp() try: opt_hook_dir = os.path.join(apport.report._opt_dir, 'foolabs.example.com', 'foo', 'share', 'apport', 'package-hooks') os.makedirs(opt_hook_dir) with open(os.path.join(opt_hook_dir, 'source_foo.py'), 'w') as fd: fd.write('''def add_info(report, ui): report['SourceHook'] = '1' ''') with open(os.path.join(opt_hook_dir, 'foo-bin.py'), 'w') as fd: fd.write('''def add_info(report, ui): report['BinHook'] = '1' ''') r = apport.report.Report() r['Package'] = 'foo-bin 0.2' r['SourcePackage'] = 'foo' r['ExecutablePath'] = '%s/foolabs.example.com/foo/bin/frob' % apport.report._opt_dir self.assertEqual(r.add_hooks_info('fake_ui'), False) self.assertEqual(r['SourceHook'], '1') finally: shutil.rmtree(apport.report._opt_dir) shutil.rmtree(apport.report._hook_dir) shutil.rmtree(apport.report._common_hook_dir) apport.report._hook_dir = orig_hook_dir apport.report._common_hook_dir = orig_common_hook_dir apport.report._opt_dir = orig_opt_dir def test_add_hooks_info_errors(self): '''add_hooks_info() with errors in hooks''' orig_hook_dir = apport.report._hook_dir apport.report._hook_dir = tempfile.mkdtemp() orig_common_hook_dir = apport.report._common_hook_dir apport.report._common_hook_dir = tempfile.mkdtemp() orig_stderr = sys.stderr sys.stderr = StringIO() try: with open(os.path.join(apport.report._hook_dir, 'fooprogs.py'), 'w') as fd: fd.write('''def add_info(report, ui): report['BinHookBefore'] = '1' 1/0 report['BinHookAfter'] = '1' ''') with open(os.path.join(apport.report._hook_dir, 'source_foo.py'), 'w') as fd: fd.write('''def add_info(report, ui): report['SourceHookBefore'] = '1' unknown() report['SourceHookAfter'] = '1' ''') r = apport.report.Report() r['Package'] = 'fooprogs 0.2' r['SourcePackage'] = 'foo' r['ExecutablePath'] = '/bin/foo-cli' self.assertEqual(r.add_hooks_info('fake_ui'), False) # should have the data until the crash self.assertEqual(r['BinHookBefore'], '1') self.assertEqual(r['SourceHookBefore'], '1') # should print the exceptions to stderr err = sys.stderr.getvalue() self.assertIn('ZeroDivisionError:', err) self.assertIn("name 'unknown' is not defined", err) # should also add the exceptions to the report self.assertIn('NameError:', r['HookError_source_foo']) self.assertIn('line 3, in add_info', r['HookError_source_foo']) self.assertNotIn('ZeroDivisionError', r['HookError_source_foo']) self.assertIn('ZeroDivisionError:', r['HookError_fooprogs']) self.assertIn('line 3, in add_info', r['HookError_source_foo']) self.assertNotIn('NameError:', r['HookError_fooprogs']) finally: sys.stderr = orig_stderr shutil.rmtree(apport.report._hook_dir) shutil.rmtree(apport.report._common_hook_dir) apport.report._hook_dir = orig_hook_dir apport.report._common_hook_dir = orig_common_hook_dir def test_ignoring(self): '''mark_ignore() and check_ignored().''' orig_ignore_file = apport.report.apport.report._ignore_file workdir = tempfile.mkdtemp() apport.report.apport.report._ignore_file = os.path.join(workdir, 'ignore.xml') try: with open(os.path.join(workdir, 'bash'), 'w') as fd: fd.write('bash') with open(os.path.join(workdir, 'crap'), 'w') as fd: fd.write('crap') bash_rep = apport.report.Report() bash_rep['ExecutablePath'] = os.path.join(workdir, 'bash') crap_rep = apport.report.Report() crap_rep['ExecutablePath'] = os.path.join(workdir, 'crap') # must be able to deal with executables that do not exist any more cp_rep = apport.report.Report() cp_rep['ExecutablePath'] = os.path.join(workdir, 'cp') # no ignores initially self.assertEqual(bash_rep.check_ignored(), False) self.assertEqual(crap_rep.check_ignored(), False) self.assertEqual(cp_rep.check_ignored(), False) # ignore crap now crap_rep.mark_ignore() self.assertEqual(bash_rep.check_ignored(), False) self.assertEqual(crap_rep.check_ignored(), True) self.assertEqual(cp_rep.check_ignored(), False) # ignore bash now bash_rep.mark_ignore() self.assertEqual(bash_rep.check_ignored(), True) self.assertEqual(crap_rep.check_ignored(), True) self.assertEqual(cp_rep.check_ignored(), False) # poke crap so that it has a newer timestamp time.sleep(1) with open(os.path.join(workdir, 'crap'), 'w') as fd: fd.write('crapnew') self.assertEqual(bash_rep.check_ignored(), True) self.assertEqual(crap_rep.check_ignored(), False) self.assertEqual(cp_rep.check_ignored(), False) # do not complain about an empty ignore file with open(apport.report.apport.report._ignore_file, 'w') as fd: fd.write('') self.assertEqual(bash_rep.check_ignored(), False) self.assertEqual(crap_rep.check_ignored(), False) self.assertEqual(cp_rep.check_ignored(), False) # does not crash if the executable went away under our feet crap_rep['ExecutablePath'] = '/non existing' crap_rep.mark_ignore() self.assertEqual(os.path.getsize(apport.report.apport.report._ignore_file), 0) finally: shutil.rmtree(workdir) apport.report.apport.report._ignore_file = orig_ignore_file def test_blacklisting(self): '''check_ignored() for system-wise blacklist.''' orig_blacklist_dir = apport.report._blacklist_dir apport.report._blacklist_dir = tempfile.mkdtemp() orig_ignore_file = apport.report._ignore_file apport.report._ignore_file = '/nonexistant' try: bash_rep = apport.report.Report() bash_rep['ExecutablePath'] = '/bin/bash' crap_rep = apport.report.Report() crap_rep['ExecutablePath'] = '/bin/crap' # no ignores initially self.assertEqual(bash_rep.check_ignored(), False) self.assertEqual(crap_rep.check_ignored(), False) # should not stumble over comments with open(os.path.join(apport.report._blacklist_dir, 'README'), 'w') as fd: fd.write('# Ignore file\n#/bin/bash\n') # no ignores on nonmatching paths with open(os.path.join(apport.report._blacklist_dir, 'bl1'), 'w') as fd: fd.write('/bin/bas\n/bin/bashh\nbash\nbin/bash\n') self.assertEqual(bash_rep.check_ignored(), False) self.assertEqual(crap_rep.check_ignored(), False) # ignore crap now with open(os.path.join(apport.report._blacklist_dir, 'bl_2'), 'w') as fd: fd.write('/bin/crap\n') self.assertEqual(bash_rep.check_ignored(), False) self.assertEqual(crap_rep.check_ignored(), True) # ignore bash now with open(os.path.join(apport.report._blacklist_dir, 'bl1'), 'a') as fd: fd.write('/bin/bash\n') self.assertEqual(bash_rep.check_ignored(), True) self.assertEqual(crap_rep.check_ignored(), True) finally: shutil.rmtree(apport.report._blacklist_dir) apport.report._blacklist_dir = orig_blacklist_dir apport.report._ignore_file = orig_ignore_file def test_whitelisting(self): '''check_ignored() for system-wise whitelist.''' orig_whitelist_dir = apport.report._whitelist_dir apport.report._whitelist_dir = tempfile.mkdtemp() orig_ignore_file = apport.report.apport.report._ignore_file apport.report.apport.report._ignore_file = '/nonexistant' try: bash_rep = apport.report.Report() bash_rep['ExecutablePath'] = '/bin/bash' crap_rep = apport.report.Report() crap_rep['ExecutablePath'] = '/bin/crap' # no ignores without any whitelist self.assertEqual(bash_rep.check_ignored(), False) self.assertEqual(crap_rep.check_ignored(), False) # should not stumble over comments with open(os.path.join(apport.report._whitelist_dir, 'README'), 'w') as fd: fd.write('# Ignore file\n#/bin/bash\n') # accepts matching paths with open(os.path.join(apport.report._whitelist_dir, 'wl1'), 'w') as fd: fd.write('/bin/bash\n') self.assertEqual(bash_rep.check_ignored(), False) self.assertEqual(crap_rep.check_ignored(), True) # also accept crap now with open(os.path.join(apport.report._whitelist_dir, 'wl_2'), 'w') as fd: fd.write('/bin/crap\n') self.assertEqual(bash_rep.check_ignored(), False) self.assertEqual(crap_rep.check_ignored(), False) # only complete matches accepted with open(os.path.join(apport.report._whitelist_dir, 'wl1'), 'w') as fd: fd.write('/bin/bas\n/bin/bashh\nbash\n') self.assertEqual(bash_rep.check_ignored(), True) self.assertEqual(crap_rep.check_ignored(), False) finally: shutil.rmtree(apport.report._whitelist_dir) apport.report._whitelist_dir = orig_whitelist_dir apport.report.apport.report._ignore_file = orig_ignore_file def test_has_useful_stacktrace(self): '''has_useful_stacktrace().''' r = apport.report.Report() self.assertFalse(r.has_useful_stacktrace()) r['StacktraceTop'] = '' self.assertFalse(r.has_useful_stacktrace()) r['StacktraceTop'] = '?? ()' self.assertFalse(r.has_useful_stacktrace()) r['StacktraceTop'] = '?? ()\n?? ()' self.assertFalse(r.has_useful_stacktrace()) r['StacktraceTop'] = 'read () from /lib/libc.6.so\n?? ()' self.assertFalse(r.has_useful_stacktrace()) r['StacktraceTop'] = 'read () from /lib/libc.6.so\n?? ()\n?? ()\n?? ()' self.assertFalse(r.has_useful_stacktrace()) r['StacktraceTop'] = 'read () from /lib/libc.6.so\nfoo (i=1) from /usr/lib/libfoo.so' self.assertTrue(r.has_useful_stacktrace()) r['StacktraceTop'] = 'read () from /lib/libc.6.so\nfoo (i=1) from /usr/lib/libfoo.so\n?? ()' self.assertTrue(r.has_useful_stacktrace()) r['StacktraceTop'] = 'read () from /lib/libc.6.so\nfoo (i=1) from /usr/lib/libfoo.so\n?? ()\n?? ()' self.assertTrue(r.has_useful_stacktrace()) r['StacktraceTop'] = 'read () from /lib/libc.6.so\n?? ()\nfoo (i=1) from /usr/lib/libfoo.so\n?? ()\n?? ()' self.assertFalse(r.has_useful_stacktrace()) def test_standard_title(self): '''standard_title().''' report = apport.report.Report() self.assertEqual(report.standard_title(), None) # named signal crash report['Signal'] = '11' report['ExecutablePath'] = '/bin/bash' report['StacktraceTop'] = '''foo() bar(x=3) baz() ''' self.assertEqual(report.standard_title(), 'bash crashed with SIGSEGV in foo()') # unnamed signal crash report['Signal'] = '42' self.assertEqual(report.standard_title(), 'bash crashed with signal 42 in foo()') # do not crash on empty StacktraceTop report['StacktraceTop'] = '' self.assertEqual(report.standard_title(), 'bash crashed with signal 42') # do not create bug title with unknown function name report['StacktraceTop'] = '??()\nfoo()' self.assertEqual(report.standard_title(), 'bash crashed with signal 42 in foo()') # if we do not know any function name, don't mention ?? report['StacktraceTop'] = '??()\n??()' self.assertEqual(report.standard_title(), 'bash crashed with signal 42') # assertion message report['Signal'] = '6' report['ExecutablePath'] = '/bin/bash' report['AssertionMessage'] = 'foo.c:42 main: i > 0' self.assertEqual(report.standard_title(), 'bash assert failure: foo.c:42 main: i > 0') # Python crash report = apport.report.Report() report['ExecutablePath'] = '/usr/share/apport/apport-gtk' report['Traceback'] = '''Traceback (most recent call last): File "/usr/share/apport/apport-gtk", line 202, in <module> app.run_argv() File "/var/lib/python-support/python2.5/apport/ui.py", line 161, in run_argv self.run_crashes() File "/var/lib/python-support/python2.5/apport/ui.py", line 104, in run_crashes self.run_crash(f) File "/var/lib/python-support/python2.5/apport/ui.py", line 115, in run_crash response = self.ui_present_crash(desktop_entry) File "/usr/share/apport/apport-gtk", line 67, in ui_present_crash subprocess.call(['pgrep', '-x', NameError: global name 'subprocess' is not defined''' self.assertEqual(report.standard_title(), "apport-gtk crashed with NameError in ui_present_crash(): global name 'subprocess' is not defined") # slightly weird Python crash report = apport.report.Report() report['ExecutablePath'] = '/usr/share/apport/apport-gtk' report['Traceback'] = '''TypeError: Cannot create a consistent method resolution order (MRO) for bases GObject, CanvasGroupableIface, CanvasGroupable''' self.assertEqual(report.standard_title(), 'apport-gtk crashed with TypeError: Cannot create a consistent method resolution') # Python crash with custom message report = apport.report.Report() report['ExecutablePath'] = '/usr/share/apport/apport-gtk' report['Traceback'] = '''Traceback (most recent call last): File "/x/foo.py", line 242, in setup_chooser raise "Moo" Mo?o[a-1]''' self.assertEqual(report.standard_title(), 'apport-gtk crashed with Mo?o[a-1] in setup_chooser()') # Python crash with custom message with newlines (LP #190947) report = apport.report.Report() report['ExecutablePath'] = '/usr/share/apport/apport-gtk' report['Traceback'] = '''Traceback (most recent call last): File "/x/foo.py", line 242, in setup_chooser raise "\nKey: "+key+" isn't set.\nRestarting AWN usually solves this issue\n" Key: /apps/avant-window-navigator/app/active_png isn't set. Restarting AWN usually solves this issue''' t = report.standard_title() self.assertTrue(t.startswith('apport-gtk crashed with')) self.assertTrue(t.endswith('setup_chooser()')) # Python crash at top level in module report = apport.report.Report() report['ExecutablePath'] = '/usr/bin/gnome-about' report['Traceback'] = '''Traceback (most recent call last): File "/usr/bin/gnome-about", line 30, in <module> import pygtk File "/usr/lib/pymodules/python2.6/pygtk.py", line 28, in <module> import nonexistent ImportError: No module named nonexistent ''' self.assertEqual(report.standard_title(), "gnome-about crashed with ImportError in /usr/lib/pymodules/python2.6/pygtk.py: No module named nonexistent") # Python crash at top level in main program report = apport.report.Report() report['ExecutablePath'] = '/usr/bin/dcut' report['Traceback'] = '''Traceback (most recent call last): File "/usr/bin/dcut", line 28, in <module> import nonexistent ImportError: No module named nonexistent ''' self.assertEqual(report.standard_title(), "dcut crashed with ImportError in __main__: No module named nonexistent") # package install problem report = apport.report.Report('Package') report['Package'] = 'bash' # no ErrorMessage self.assertEqual(report.standard_title(), 'package bash failed to install/upgrade') # empty ErrorMessage report['ErrorMessage'] = '' self.assertEqual(report.standard_title(), 'package bash failed to install/upgrade') # nonempty ErrorMessage report['ErrorMessage'] = 'botched\nnot found\n' self.assertEqual(report.standard_title(), 'package bash failed to install/upgrade: not found') # matching package/system architectures report['Signal'] = '11' report['ExecutablePath'] = '/bin/bash' report['StacktraceTop'] = '''foo() bar(x=3) baz() ''' report['PackageArchitecture'] = 'amd64' report['Architecture'] = 'amd64' self.assertEqual(report.standard_title(), 'bash crashed with SIGSEGV in foo()') # non-native package (on multiarch) report['PackageArchitecture'] = 'i386' self.assertEqual(report.standard_title(), 'bash crashed with SIGSEGV in foo() [non-native i386 package]') # Arch: all package (matches every system architecture) report['PackageArchitecture'] = 'all' self.assertEqual(report.standard_title(), 'bash crashed with SIGSEGV in foo()') report = apport.report.Report('KernelOops') report['OopsText'] = '------------[ cut here ]------------\nkernel BUG at /tmp/oops.c:5!\ninvalid opcode: 0000 [#1] SMP' self.assertEqual(report.standard_title(), 'kernel BUG at /tmp/oops.c:5!') def test_obsolete_packages(self): '''obsolete_packages().''' report = apport.report.Report() self.assertEqual(report.obsolete_packages(), []) # should work without Dependencies report['Package'] = 'bash 0' self.assertEqual(report.obsolete_packages(), ['bash']) report['Package'] = 'bash 0 [modified: /bin/bash]' self.assertEqual(report.obsolete_packages(), ['bash']) report['Package'] = 'bash ' + apport.packaging.get_available_version('bash') self.assertEqual(report.obsolete_packages(), []) report['Dependencies'] = 'coreutils 0\ncron 0\n' self.assertEqual(report.obsolete_packages(), ['coreutils', 'cron']) report['Dependencies'] = 'coreutils %s [modified: /bin/mount]\ncron 0\n' % \ apport.packaging.get_available_version('coreutils') self.assertEqual(report.obsolete_packages(), ['cron']) report['Dependencies'] = 'coreutils %s\ncron %s\n' % ( apport.packaging.get_available_version('coreutils'), apport.packaging.get_available_version('cron')) self.assertEqual(report.obsolete_packages(), []) def test_gen_stacktrace_top(self): '''_gen_stacktrace_top().''' # nothing to chop off r = apport.report.Report() r['Stacktrace'] = '''#0 0x10000488 in h (p=0x0) at crash.c:25 #1 0x100004c8 in g (x=1, y=42) at crash.c:26 #2 0x10000514 in f (x=1) at crash.c:27 #3 0x10000530 in e (x=1) at crash.c:28 #4 0x10000530 in d (x=1) at crash.c:29 #5 0x10000530 in c (x=1) at crash.c:30 #6 0x10000550 in main () at crash.c:31 ''' r._gen_stacktrace_top() self.assertEqual(r['StacktraceTop'], '''h (p=0x0) at crash.c:25 g (x=1, y=42) at crash.c:26 f (x=1) at crash.c:27 e (x=1) at crash.c:28 d (x=1) at crash.c:29''') # nothing to chop off: some addresses missing (LP #269133) r = apport.report.Report() r['Stacktrace'] = '''#0 h (p=0x0) at crash.c:25 #1 0x100004c8 in g (x=1, y=42) at crash.c:26 #2 f (x=1) at crash.c:27 #3 0x10000530 in e (x=1) at crash.c:28 #4 0x10000530 in d (x=1) at crash.c:29 #5 0x10000530 in c (x=1) at crash.c:30 #6 0x10000550 in main () at crash.c:31 ''' r._gen_stacktrace_top() self.assertEqual(r['StacktraceTop'], '''h (p=0x0) at crash.c:25 g (x=1, y=42) at crash.c:26 f (x=1) at crash.c:27 e (x=1) at crash.c:28 d (x=1) at crash.c:29''') # single signal handler invocation r = apport.report.Report() r['Stacktrace'] = '''#0 0x10000488 in raise () from /lib/libpthread.so.0 #1 0x100004c8 in ?? #2 <signal handler called> #3 0x10000530 in e (x=1) at crash.c:28 #4 0x10000530 in d (x=1) at crash.c:29 #5 0x10000530 in c (x=1) at crash.c:30 #6 0x10000550 in main () at crash.c:31 ''' r._gen_stacktrace_top() self.assertEqual(r['StacktraceTop'], '''e (x=1) at crash.c:28 d (x=1) at crash.c:29 c (x=1) at crash.c:30 main () at crash.c:31''') # single signal handler invocation: some addresses missing r = apport.report.Report() r['Stacktrace'] = '''#0 0x10000488 in raise () from /lib/libpthread.so.0 #1 ?? #2 <signal handler called> #3 0x10000530 in e (x=1) at crash.c:28 #4 d (x=1) at crash.c:29 #5 0x10000530 in c (x=1) at crash.c:30 #6 0x10000550 in main () at crash.c:31 ''' r._gen_stacktrace_top() self.assertEqual(r['StacktraceTop'], '''e (x=1) at crash.c:28 d (x=1) at crash.c:29 c (x=1) at crash.c:30 main () at crash.c:31''') # stacked signal handler; should only cut the first one r = apport.report.Report() r['Stacktrace'] = '''#0 0x10000488 in raise () from /lib/libpthread.so.0 #1 0x100004c8 in ?? #2 <signal handler called> #3 0x10000530 in e (x=1) at crash.c:28 #4 0x10000530 in d (x=1) at crash.c:29 #5 0x10000123 in raise () from /lib/libpthread.so.0 #6 <signal handler called> #7 0x10000530 in c (x=1) at crash.c:30 #8 0x10000550 in main () at crash.c:31 ''' r._gen_stacktrace_top() self.assertEqual(r['StacktraceTop'], '''e (x=1) at crash.c:28 d (x=1) at crash.c:29 raise () from /lib/libpthread.so.0 <signal handler called> c (x=1) at crash.c:30''') # Gnome assertion; should unwind the logs and assert call r = apport.report.Report() r['Stacktrace'] = '''#0 0xb7d39cab in IA__g_logv (log_domain=<value optimized out>, log_level=G_LOG_LEVEL_ERROR, format=0xb7d825f0 "file %s: line %d (%s): assertion failed: (%s)", args1=0xbfee8e3c "xxx") at /build/buildd/glib2.0-2.13.5/glib/gmessages.c:493 #1 0xb7d39f29 in IA__g_log (log_domain=0xb7edbfd0 "libgnomevfs", log_level=G_LOG_LEVEL_ERROR, format=0xb7d825f0 "file %s: line %d (%s): assertion failed: (%s)") at /build/buildd/glib2.0-2.13.5/glib/gmessages.c:517 #2 0xb7d39fa6 in IA__g_assert_warning (log_domain=0xb7edbfd0 "libgnomevfs", file=0xb7ee1a26 "gnome-vfs-volume.c", line=254, pretty_function=0xb7ee1920 "gnome_vfs_volume_unset_drive_private", expression=0xb7ee1a39 "volume->priv->drive == drive") at /build/buildd/glib2.0-2.13.5/glib/gmessages.c:552 No locals. #3 0xb7ec6c11 in gnome_vfs_volume_unset_drive_private (volume=0x8081a30, drive=0x8078f00) at gnome-vfs-volume.c:254 __PRETTY_FUNCTION__ = "gnome_vfs_volume_unset_drive_private" #4 0x08054db8 in _gnome_vfs_volume_monitor_disconnected (volume_monitor=0x8070400, drive=0x8078f00) at gnome-vfs-volume-monitor.c:963 vol_list = (GList *) 0x8096d30 current_vol = (GList *) 0x8097470 #5 0x0805951e in _hal_device_removed (hal_ctx=0x8074da8, udi=0x8093be4 "/org/freedesktop/Hal/devices/volume_uuid_92FC9DFBFC9DDA35") at gnome-vfs-hal-mounts.c:1316 backing_udi = <value optimized out> #6 0xb7ef1ead in filter_func (connection=0x8075288, message=0x80768d8, user_data=0x8074da8) at libhal.c:820 udi = <value optimized out> object_path = 0x8076d40 "/org/freedesktop/Hal/Manager" error = {name = 0x0, message = 0x0, dummy1 = 1, dummy2 = 0, dummy3 = 0, dummy4 = 1, dummy5 = 0, padding1 = 0xb7e50c00} #7 0xb7e071d2 in dbus_connection_dispatch (connection=0x8075288) at dbus-connection.c:4267 #8 0xb7e33dfd in ?? () from /usr/lib/libdbus-glib-1.so.2''' r._gen_stacktrace_top() self.assertEqual(r['StacktraceTop'], '''gnome_vfs_volume_unset_drive_private (volume=0x8081a30, drive=0x8078f00) at gnome-vfs-volume.c:254 _gnome_vfs_volume_monitor_disconnected (volume_monitor=0x8070400, drive=0x8078f00) at gnome-vfs-volume-monitor.c:963 _hal_device_removed (hal_ctx=0x8074da8, udi=0x8093be4 "/org/freedesktop/Hal/devices/volume_uuid_92FC9DFBFC9DDA35") filter_func (connection=0x8075288, message=0x80768d8, user_data=0x8074da8) at libhal.c:820 dbus_connection_dispatch (connection=0x8075288) at dbus-connection.c:4267''') # XError (taken from LP#848808) r = apport.report.Report() r['Stacktrace'] = '''#0 0x007cf416 in __kernel_vsyscall () No symbol table info available. #1 0x01017c8f in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #2 0x0101b2b5 in __GI_abort () at abort.c:92 #3 0x0807daab in meta_bug (format=0x80b0c60 "Unexpected X error: %s serial %ld error_code %d request_code %d minor_code %d)\n") at core/util.c:398 #4 0x0806989c in x_error_handler (error=0xbf924acc, xdisplay=0x9104b88) at core/errors.c:247 #5 x_error_handler (xdisplay=0x9104b88, error=0xbf924acc) at core/errors.c:203 #6 0x00e97d3b in _XError (dpy=0x9104b88, rep=0x9131840) at ../../src/XlibInt.c:1583 #7 0x00e9490d in handle_error (dpy=0x9104b88, err=0x9131840, in_XReply=0) at ../../src/xcb_io.c:212 #8 0x00e94967 in handle_response (dpy=0x9104b88, response=0x9131840, in_XReply=0) at ../../src/xcb_io.c:324 #9 0x00e952fe in _XReadEvents (dpy=0x9104b88) at ../../src/xcb_io.c:425 #10 0x00e93663 in XWindowEvent (dpy=0x9104b88, w=16777220, mask=4194304, event=0xbf924c6c) at ../../src/WinEvent.c:79 #11 0x0806071c in meta_display_get_current_time_roundtrip (display=0x916d7d0) at core/display.c:1217 #12 0x08089f64 in meta_window_show (window=0x91ccfc8) at core/window.c:2165 #13 implement_showing (window=0x91ccfc8, showing=1) at core/window.c:1583 #14 0x080879cc in meta_window_flush_calc_showing (window=0x91ccfc8) at core/window.c:1806''' r._gen_stacktrace_top() self.assertEqual(r['StacktraceTop'], '''meta_display_get_current_time_roundtrip (display=0x916d7d0) at core/display.c:1217 meta_window_show (window=0x91ccfc8) at core/window.c:2165 implement_showing (window=0x91ccfc8, showing=1) at core/window.c:1583 meta_window_flush_calc_showing (window=0x91ccfc8) at core/window.c:1806''') # another XError (taken from LP#834403) r = apport.report.Report() r['Stacktrace'] = '''#0 g_logv (log_domain=0x7fd41db08a46 "Gdk", log_level=<optimized out>, format=0x7fd41db12e87 "%s", args1=0x7fff50bf0c18) at /build/buildd/glib2.0-2.29.16/./glib/gmessages.c:577 #1 0x00007fd42006bb92 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at /build/buildd/glib2.0-2.29.16/./glib/gmessages.c:591 #2 0x00007fd41dae86f3 in _gdk_x11_display_error_event (display=<optimized out>, error=<optimized out>) at /build/buildd/gtk+3.0-3.1.12/./gdk/x11/gdkdisplay-x11.c:2374 #3 0x00007fd41daf5647 in gdk_x_error (error=0x7fff50bf0dc0, xdisplay=<optimized out>) at /build/buildd/gtk+3.0-3.1.12/./gdk/x11/gdkmain-x11.c:312 #4 gdk_x_error (xdisplay=<optimized out>, error=0x7fff50bf0dc0) at /build/buildd/gtk+3.0-3.1.12/./gdk/x11/gdkmain-x11.c:275 #5 0x00007fd41d5a301f in _XError (dpy=0x2425370, rep=<optimized out>) at ../../src/XlibInt.c:1583 #6 0x00007fd41d59fdd1 in handle_error (dpy=0x2425370, err=0x7fd408707980, in_XReply=<optimized out>) at ../../src/xcb_io.c:212 #7 0x00007fd41d5a0d27 in _XReply (dpy=0x2425370, rep=0x7fff50bf0f60, extra=0, discard=0) at ../../src/xcb_io.c:698 #8 0x00007fd41d5852fb in XGetWindowProperty (dpy=0x2425370, w=0, property=348, offset=0, length=2, delete=<optimized out>, req_type=348, actual_type=0x7fff50bf1038, actual_format=0x7fff50bf105c, nitems=0x7fff50bf1040, bytesafter=0x7fff50bf1048, prop=0x7fff50bf1050) at ../../src/GetProp.c:61 #9 0x00007fd41938269e in window_is_xembed (w=<optimized out>, d=<optimized out>) at canberra-gtk-module.c:373 #10 dispatch_sound_event (d=0x32f6a30) at canberra-gtk-module.c:454 #11 dispatch_queue () at canberra-gtk-module.c:815''' r._gen_stacktrace_top() self.assertEqual(r['StacktraceTop'], '''XGetWindowProperty (dpy=0x2425370, w=0, property=348, offset=0, length=2, delete=<optimized out>, req_type=348, actual_type=0x7fff50bf1038, actual_format=0x7fff50bf105c, nitems=0x7fff50bf1040, bytesafter=0x7fff50bf1048, prop=0x7fff50bf1050) at ../../src/GetProp.c:61 window_is_xembed (w=<optimized out>, d=<optimized out>) at canberra-gtk-module.c:373 dispatch_sound_event (d=0x32f6a30) at canberra-gtk-module.c:454 dispatch_queue () at canberra-gtk-module.c:815''') # problem with too old gdb, only assertion, nothing else r = apport.report.Report() r['Stacktrace'] = '''#0 0x00987416 in __kernel_vsyscall () No symbol table info available. #1 0x00ebecb1 in *__GI_raise (sig=6) selftid = 945 #2 0x00ec218e in *__GI_abort () at abort.c:59 save_stage = Unhandled dwarf expression opcode 0x9f ''' r._gen_stacktrace_top() self.assertEqual(r['StacktraceTop'], '') # ignore uninteresting frames r = apport.report.Report() r['Stacktrace'] = '''#0 0x00987416 in __kernel_vsyscall () #1 __strchr_sse42 () at strchr.S:97 #2 h (p=0x0) at crash.c:25 #3 0x100004c8 in g (x=1, y=42) at crash.c:26 #4 0x10000999 in __memmove_ssse3 () #5 f (x=1) at crash.c:27 #6 0x10000530 in e (x=1) at crash.c:28 #7 0x10000999 in __strlen_sse2_back () at strchr.S:42 #8 0x10000530 in d (x=1) at crash.c:29 #9 0x10000530 in c (x=1) at crash.c:30 #10 0x10000550 in main () at crash.c:31 ''' r._gen_stacktrace_top() self.assertEqual(r['StacktraceTop'], '''h (p=0x0) at crash.c:25 g (x=1, y=42) at crash.c:26 f (x=1) at crash.c:27 e (x=1) at crash.c:28 d (x=1) at crash.c:29''') def test_crash_signature(self): '''crash_signature().''' r = apport.report.Report() self.assertEqual(r.crash_signature(), None) # signal crashes r['Signal'] = '42' r['ExecutablePath'] = '/bin/crash' r['StacktraceTop'] = '''foo_bar (x=1) at crash.c:28 d01 (x=1) at crash.c:29 raise () from /lib/libpthread.so.0 <signal handler called> __frob::~frob (x=1) at crash.c:30''' self.assertEqual(r.crash_signature(), '/bin/crash:42:foo_bar:d01:raise:<signal handler called>:__frob::~frob') r['StacktraceTop'] = '''foo_bar (x=1) at crash.c:28 ?? raise () from /lib/libpthread.so.0 <signal handler called> __frob (x=1) at crash.c:30''' self.assertEqual(r.crash_signature(), None) r['StacktraceTop'] = '' self.assertEqual(r.crash_signature(), None) # Python crashes del r['Signal'] r['Traceback'] = '''Traceback (most recent call last): File "test.py", line 7, in <module> print(_f(5)) File "test.py", line 5, in _f return g_foo00(x+1) File "test.py", line 2, in g_foo00 return x/0 ZeroDivisionError: integer division or modulo by zero''' self.assertEqual(r.crash_signature(), '/bin/crash:ZeroDivisionError:test.py@7:_f:g_foo00') # sometimes Python traces do not have file references r['Traceback'] = 'TypeError: function takes exactly 0 arguments (1 given)' self.assertEqual(r.crash_signature(), '/bin/crash:TypeError') r['Traceback'] = 'FooBar' self.assertEqual(r.crash_signature(), None) # kernel r['ProblemType'] = 'KernelCrash' r['Stacktrace'] = ''' crash 4.0-8.9 GNU gdb 6.1 GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"... KERNEL: /usr/lib/debug/boot/vmlinux-2.6.31-2-generic DUMPFILE: /tmp/tmpRJZy_O CPUS: 1 DATE: Thu Jul 9 12:58:08 2009 UPTIME: 00:00:57 LOAD AVERAGE: 0.15, 0.05, 0.02 TASKS: 173 NODENAME: egon-desktop RELEASE: 2.6.31-2-generic VERSION: #16-Ubuntu SMP Mon Jul 6 20:38:51 UTC 2009 MACHINE: i686 (2137 Mhz) MEMORY: 2 GB PANIC: "[ 57.879776] Oops: 0002 [#1] SMP " (check log for details) PID: 0 COMMAND: "swapper" TASK: c073c180 [THREAD_INFO: c0784000] CPU: 0 STATE: TASK_RUNNING (PANIC) PID: 0 TASK: c073c180 CPU: 0 COMMAND: "swapper" #0 [c0785ba0] sysrq_handle_crash at c03917a3 [RA: c03919c6 SP: c0785ba0 FP: c0785ba0 SIZE: 4] c0785ba0: c03919c6 #1 [c0785ba0] __handle_sysrq at c03919c4 [RA: c0391a91 SP: c0785ba4 FP: c0785bc8 SIZE: 40] c0785ba4: c06d4bab c06d42d2 f6534000 00000004 c0785bb4: 00000086 0000002e 00000001 f6534000 c0785bc4: c0785bcc c0391a91 #2 [c0785bc8] handle_sysrq at c0391a8c [RA: c0389961 SP: c0785bcc FP: c0785bd0 SIZE: 8] c0785bcc: c0785c0c c0389961 #3 [c0785bd0] kbd_keycode at c038995c [RA: c0389b8b SP: c0785bd4 FP: c0785c10 SIZE: 64] c0785bd4: c056f96a c0785be4 00000096 c07578c0 c0785be4: 00000001 f6ac6e00 f6ac6e00 00000001 c0785bf4: 00000000 00000000 0000002e 0000002e c0785c04: 00000001 f70d6850 c0785c1c c0389b8b #4 [c0785c10] kbd_event at c0389b86 [RA: c043140c SP: c0785c14 FP: c0785c20 SIZE: 16] c0785c14: c0758040 f6910900 c0785c3c c043140c #5 [c0785c20] input_pass_event at c0431409 [RA: c04332ce SP: c0785c24 FP: c0785c40 SIZE: 32] c0785c24: 00000001 0000002e 00000001 f70d6000 c0785c34: 00000001 0000002e c0785c64 c04332ce #6 [c0785c40] input_handle_event at c04332c9 [RA: c0433ac6 SP: c0785c44 FP: c0785c68 SIZE: 40] c0785c44: 00000001 ffff138d 0000003d 00000001 c0785c54: f70d6000 00000001 f70d6000 0000002e c0785c64: c0785c84 c0433ac6 #7 [c0785c68] input_event at c0433ac1 [RA: c0479806 SP: c0785c6c FP: c0785c88 SIZE: 32] c0785c6c: 00000001 00000092 f70d677c f70d70b4 c0785c7c: 0000002e f70d7000 c0785ca8 c0479806 #8 [c0785c88] hidinput_hid_event at c0479801 [RA: c0475b31 SP: c0785c8c FP: c0785cac SIZE: 36] c0785c8c: 00000001 00000007 c0785c00 f70d6000 c0785c9c: f70d70b4 f70d5000 f70d7000 c0785cc4 c0785cac: c0475b31 [RA: 0 SP: c0785ffc FP: c0785ffc SIZE: 0] PID PPID CPU TASK ST %MEM VSZ RSS COMM > 0 0 0 c073c180 RU 0.0 0 0 [swapper] 1 0 1 f7038000 IN 0.1 3096 1960 init 2 0 0 f7038c90 IN 0.0 0 0 [kthreadd] 271 2 1 f72bf110 IN 0.0 0 0 [bluetooth] 325 2 1 f71c25b0 IN 0.0 0 0 [khungtaskd] 1404 2 0 f6b5bed0 IN 0.0 0 0 [kpsmoused] 1504 2 1 f649cb60 IN 0.0 0 0 [hd-audio0] 2055 1 0 f6a18000 IN 0.0 1824 536 getty 2056 1 0 f6a1d7f0 IN 0.0 1824 536 getty 2061 1 0 f6a1f110 IN 0.1 3132 1604 login 2062 1 1 f6a18c90 IN 0.0 1824 540 getty 2063 1 1 f6b58c90 IN 0.0 1824 540 getty 2130 1 0 f6b5f110 IN 0.0 2200 1032 acpid 2169 1 0 f69ebed0 IN 0.0 2040 664 syslogd 2192 1 1 f65b3ed0 IN 0.0 1976 532 dd 2194 1 1 f6b5a5b0 IN 0.1 3996 2712 klogd 2217 1 0 f6b74b60 IN 0.1 3008 1120 dbus-daemon 2248 1 0 f65b7110 IN 0.2 6896 4304 hald 2251 1 1 f65b3240 IN 0.1 19688 2604 console-kit-dae RUNQUEUES[0]: c6002320 RT PRIO_ARRAY: c60023c0 CFS RB_ROOT: c600237c PID: 9 TASK: f703f110 CPU: 0 COMMAND: "events/0" ''' self.assertEqual(r.crash_signature(), 'kernel:sysrq_handle_crash:__handle_sysrq:handle_sysrq:kbd_keycode:kbd_event:input_pass_event:input_handle_event:input_event:hidinput_hid_event') # assertion failures r = apport.report.Report() r['Signal'] = '6' r['ExecutablePath'] = '/bin/bash' r['AssertionMessage'] = 'foo.c:42 main: i > 0' self.assertEqual(r.crash_signature(), '/bin/bash:foo.c:42 main: i > 0') # kernel oops report = apport.report.Report('KernelOops') report['OopsText'] = ''' BUG: unable to handle kernel paging request at ffffb4ff IP: [<c11e4690>] ext4_get_acl+0x80/0x210 *pde = 01874067 *pte = 00000000 Oops: 0000 [#1] SMP Modules linked in: bnep rfcomm bluetooth dm_crypt olpc_xo1 scx200_acb snd_cs5535audio snd_ac97_codec ac97_bus snd_pcm snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device snd cs5535_gpio soundcore snd_page_alloc binfmt_misc geode_aes cs5535_mfd geode_rng msr vesafb usbhid hid 8139too pata_cs5536 8139cp Pid: 1798, comm: gnome-session-c Not tainted 3.0.0-11-generic #17-Ubuntu First International Computer, Inc. ION603/ION603 EIP: 0060:[<c11e4690>] EFLAGS: 00010286 CPU: 0 EIP is at ext4_get_acl+0x80/0x210 EAX: f5d3009c EBX: f5d30088 ECX: 00000000 EDX: f5d301d8 ESI: ffffb4ff EDI: 00008000 EBP: f29b3dc8 ESP: f29b3da4 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 Process gnome-session-c (pid: 1798, ti=f29b2000 task=f2bd72c0 task.ti=f29b2000) Stack: f29b3db0 c113bb90 f5d301d8 f29b3de4 c11b9016 f5d3009c f5d30088 f5d30088 00000001 f29b3ddc c11e4cca 00000001 f5d30088 000081ed f29b3df0 c11313b7 00000021 00000021 f5d30088 f29b3e08 c1131b45 c11e4c80 f5d30088 00000021 Call Trace: [<c113bb90>] ? d_splice_alias+0x40/0x50 [<c11b9016>] ? ext4_lookup.part.30+0x56/0x120 [<c11e4cca>] ext4_check_acl+0x4a/0x90 [<c11313b7>] acl_permission_check+0x97/0xa0 [<c1131b45>] generic_permission+0x25/0xc0 [<c11e4c80>] ? ext4_xattr_set_acl+0x160/0x160 [<c1131c79>] inode_permission+0x99/0xd0 [<c11e4c80>] ? ext4_xattr_set_acl+0x160/0x160 [<c1131d1b>] may_open+0x6b/0x110 [<c1134566>] do_last+0x1a6/0x640 [<c113595d>] path_openat+0x9d/0x350 [<c10de692>] ? unlock_page+0x42/0x50 [<c10fb960>] ? __do_fault+0x3b0/0x4b0 [<c1135c41>] do_filp_open+0x31/0x80 [<c124c743>] ? aa_dup_task_context+0x33/0x60 [<c1250eed>] ? apparmor_cred_prepare+0x2d/0x50 [<c112e9ef>] open_exec+0x2f/0x110 [<c112eef7>] ? check_unsafe_exec+0xb7/0xf0 [<c112efba>] do_execve_common+0x8a/0x270 [<c112f1b7>] do_execve+0x17/0x20 [<c100a0a7>] sys_execve+0x37/0x70 [<c15336ae>] ptregs_execve+0x12/0x18 [<c152c8d4>] ? syscall_call+0x7/0xb Code: 8d 76 00 8d 93 54 01 00 00 8b 32 85 f6 74 e2 8d 43 14 89 55 e4 89 45 f0 e8 2e 7e 34 00 8b 55 e4 8b 32 83 fe ff 74 07 85 f6 74 03 <3e> ff 06 8b 45 f0 e8 25 19 e4 ff 90 83 fe ff 75 b5 81 ff 00 40 EIP: [<c11e4690>] ext4_get_acl+0x80/0x210 SS:ESP 0068:f29b3da4 CR2: 00000000ffffb4ff ---[ end trace b567e6a3070ffb42 ]--- ''' self.assertEqual(report.crash_signature(), 'kernel paging request:ext4_get_acl+0x80/0x210:ext4_check_acl+0x4a/0x90:acl_permission_check+0x97/0xa0:generic_permission+0x25/0xc0:inode_permission+0x99/0xd0:may_open+0x6b/0x110:do_last+0x1a6/0x640:path_openat+0x9d/0x350:do_filp_open+0x31/0x80:open_exec+0x2f/0x110:do_execve_common+0x8a/0x270:do_execve+0x17/0x20:sys_execve+0x37/0x70:ptregs_execve+0x12/0x18') def test_nonascii_data(self): '''methods get along with non-ASCII data''' # fake os.uname() into reporting a non-ASCII name uname = os.uname() uname = (uname[0], b't\xe2\x99\xaax'.decode('UTF-8'), uname[2], uname[3], uname[4]) orig_uname = os.uname os.uname = lambda: uname try: pr = apport.report.Report() utf8_val = b'\xc3\xa4 ' + uname[1].encode('UTF-8') + b' \xe2\x99\xa5 ' pr['ProcUnicodeValue'] = utf8_val.decode('UTF-8') pr['ProcByteArrayValue'] = utf8_val pr.anonymize() exp_utf8 = b'\xc3\xa4 hostname \xe2\x99\xa5 ' self.assertEqual(pr['ProcUnicodeValue'], exp_utf8.decode('UTF-8')) self.assertEqual(pr['ProcByteArrayValue'], exp_utf8) finally: os.uname = orig_uname def test_address_to_offset(self): '''_address_to_offset()''' pr = apport.report.Report() self.assertRaises(AssertionError, pr._address_to_offset, 0) pr['ProcMaps'] = ''' 00400000-004df000 r-xp 00000000 08:02 1044485 /bin/bash 006de000-006df000 r--p 000de000 08:02 1044485 /bin/bash 01596000-01597000 rw-p 00000000 00:00 0 01597000-015a4000 rw-p 00000000 00:00 0 [heap] 7f491f868000-7f491f88a000 r-xp 00000000 08:02 526219 /lib/x86_64-linux-gnu/libtinfo.so.5.9 7f491fa8f000-7f491fc24000 r-xp 00000000 08:02 522605 /lib/x86_64-linux-gnu/libc-2.13.so 7f491fc24000-7f491fe23000 ---p 00195000 08:02 522605 /lib/with spaces !/libfoo.so 7fff6e57b000-7fff6e59c000 rw-p 00000000 00:00 0 [stack] 7fff6e5ff000-7fff6e600000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] ''' self.assertEqual(pr._address_to_offset(0x41d703), '/bin/bash+1d703') self.assertEqual(pr._address_to_offset(0x00007f491fac5687), '/lib/x86_64-linux-gnu/libc-2.13.so+36687') self.assertEqual(pr._address_to_offset(0x006ddfff), None) self.assertEqual(pr._address_to_offset(0x006de000), '/bin/bash+0') self.assertEqual(pr._address_to_offset(0x006df000), '/bin/bash+1000') self.assertEqual(pr._address_to_offset(0x006df001), None) self.assertEqual(pr._address_to_offset(0), None) self.assertEqual(pr._address_to_offset(0x10), None) self.assertEqual(pr._address_to_offset(0x7f491fc24010), '/lib/with spaces !/libfoo.so+10') def test_address_to_offset_arm(self): '''_address_to_offset() for ARM /proc/pid/maps''' pr = apport.report.Report() pr['ProcMaps'] = ''' 00008000-0000e000 r-xp 00000000 08:01 13243326 /usr/lib/dconf/dconf-service 00017000-00038000 rw-p 00000000 00:00 0 [heap] 40017000-4001d000 rw-p 00000000 00:00 0 40026000-400f2000 r-xp 00000000 08:01 13110792 /usr/lib/arm-linux-gnueabihf/libgio-2.0.so.0.3400.0 400f2000-400f9000 ---p 000cc000 08:01 13110792 /usr/lib/arm-linux-gnueabihf/libgio-2.0.so.0.3400.0 4020d000-4020f000 rw-p 00000000 00:00 0 4020f000-402e5000 r-xp 00000000 08:01 13108294 /lib/arm-linux-gnueabihf/libc-2.15.so 402e5000-402ed000 ---p 000d6000 08:01 13108294 /lib/arm-linux-gnueabihf/libc-2.15.so 40d21000-40e00000 ---p 00000000 00:00 0 befdf000-bf000000 rw-p 00000000 00:00 0 [stack] ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors] ''' self.assertEqual(pr._address_to_offset(0x402261e6), '/lib/arm-linux-gnueabihf/libc-2.15.so+171e6') self.assertEqual(pr._address_to_offset(0x4002601F), '/usr/lib/arm-linux-gnueabihf/libgio-2.0.so.0.3400.0+1f') def test_address_to_offset_live(self): '''_address_to_offset() for current /proc/pid/maps''' # this primarily checks that the parser actually gets along with the # real /proc/pid/maps and not just with our static test case above pr = apport.report.Report() pr.add_proc_info() self.assertEqual(pr._address_to_offset(0), None) res = pr._address_to_offset(int(pr['ProcMaps'].split('-', 1)[0], 16) + 5) self.assertEqual(res.split('+', 1)[1], '5') self.assertIn('python', res.split('+', 1)[0]) def test_crash_signature_addresses(self): '''crash_signature_addresses()''' pr = apport.report.Report() self.assertEqual(pr.crash_signature_addresses(), None) pr['ExecutablePath'] = '/bin/bash' pr['Signal'] = '42' pr['ProcMaps'] = ''' 00400000-004df000 r-xp 00000000 08:02 1044485 /bin/bash 006de000-006df000 r--p 000de000 08:02 1044485 /bin/bash 01596000-01597000 rw-p 00000000 00:00 0 01597000-015a4000 rw-p 00000000 00:00 0 [heap] 7f491f868000-7f491f88a000 r-xp 00000000 08:02 526219 /lib/x86_64-linux-gnu/libtinfo.so.5.9 7f491fa8f000-7f491fc24000 r-xp 00000000 08:02 522605 /lib/x86_64-linux-gnu/libc-2.13.so 7f491fc24000-7f491fe23000 ---p 00195000 08:02 522605 /lib/with spaces !/libfoo.so 7fff6e57b000-7fff6e59c000 rw-p 00000000 00:00 0 [stack] 7fff6e5ff000-7fff6e600000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] ''' # no Stacktrace field self.assertEqual(pr.crash_signature_addresses(), None) # good stack trace pr['Stacktrace'] = ''' #0 0x00007f491fac5687 in kill () at ../sysdeps/unix/syscall-template.S:82 No locals. #1 0x000000000043fd51 in kill_pid () #2 g_main_context_iterate (context=0x1731680) at gmain.c:3068 #3 0x000000000042eb76 in ?? () #4 0x00000000004324d8 in ?? No symbol table info available. #5 0x00000000004707e3 in parse_and_execute () #6 0x000000000041d703 in _start () ''' self.assertEqual(pr.crash_signature_addresses(), '/bin/bash:42:/lib/x86_64-linux-gnu/libc-2.13.so+36687:/bin/bash+3fd51:/bin/bash+2eb76:/bin/bash+324d8:/bin/bash+707e3:/bin/bash+1d703') # all resolvable, but too short pr['Stacktrace'] = '#0 0x00007f491fac5687 in kill () at ../sysdeps/unix/syscall-template.S:82' self.assertEqual(pr.crash_signature_addresses(), None) # one unresolvable, but long enough pr['Stacktrace'] = ''' #0 0x00007f491fac5687 in kill () at ../sysdeps/unix/syscall-template.S:82 No locals. #1 0x000001000043fd51 in kill_pid () #2 g_main_context_iterate (context=0x1731680) at gmain.c:3068 #3 0x000000000042eb76 in ?? () #4 0x00000000004324d8 in ?? No symbol table info available. #5 0x00000000004707e3 in parse_and_execute () #6 0x000000000041d715 in main () #7 0x000000000041d703 in _start () ''' sig = pr.crash_signature_addresses() self.assertNotEqual(sig, None) # one true unresolvable, and some "low address" artifacts; should be # identical to the one above pr['Stacktrace'] = ''' #0 0x00007f491fac5687 in kill () at ../sysdeps/unix/syscall-template.S:82 No locals. #1 0x000001000043fd51 in kill_pid () #2 0x0000000000000010 in ?? #3 g_main_context_iterate (context=0x1731680) at gmain.c:3068 #4 0x000000000042eb76 in ?? () #5 0x0000000000000000 in ?? () #6 0x0000000000000421 in ?? () #7 0x00000000004324d8 in ?? No symbol table info available. #8 0x00000000004707e3 in parse_and_execute () #9 0x000000000041d715 in main () #10 0x000000000041d703 in _start () ''' self.assertEqual(pr.crash_signature_addresses(), sig) # two unresolvables, 2/7 is too much pr['Stacktrace'] = ''' #0 0x00007f491fac5687 in kill () at ../sysdeps/unix/syscall-template.S:82 No locals. #1 0x000001000043fd51 in kill_pid () #2 g_main_context_iterate (context=0x1731680) at gmain.c:3068 #3 0x000001000042eb76 in ?? () #4 0x00000000004324d8 in ?? No symbol table info available. #5 0x00000000004707e3 in parse_and_execute () #6 0x000000000041d715 in main () #7 0x000000000041d703 in _start () ''' self.assertEqual(pr.crash_signature_addresses(), None) def test_missing_uid(self): '''check_ignored() works for removed user''' orig_getuid = os.getuid os.getuid = lambda: 123456789 try: pr = apport.report.Report() pr['ExecutablePath'] = '/bin/bash' pr.check_ignored() finally: os.getuid = orig_getuid def test_suspend_resume(self): pr = apport.report.Report() pr['ProblemType'] = 'KernelOops' pr['Failure'] = 'suspend/resume' pr['MachineType'] = 'Cray XT5' pr['dmi.bios.version'] = 'ABC123 (1.0)' expected = 'suspend/resume:Cray XT5:ABC123 (1.0)' self.assertEqual(expected, pr.crash_signature()) # There will not always be a BIOS version del pr['dmi.bios.version'] expected = 'suspend/resume:Cray XT5' self.assertEqual(expected, pr.crash_signature()) def test_get_logind_session(self): ret = apport.Report.get_logind_session(os.getpid()) if ret is None: # ensure that we don't run under logind, and thus the None is # justified with open('/proc/self/cgroup') as f: contents = f.read() sys.stdout.write('[not running under logind] ') sys.stdout.flush() self.assertNotIn('name=systemd:/user', contents) return (session, timestamp) = ret self.assertNotEqual(session, '') # session start must be >= 2014-01-01 and <= "now" self.assertLess(timestamp, time.time()) self.assertGreater(timestamp, time.mktime(time.strptime('2014-01-01', '%Y-%m-%d'))) def test_get_logind_session_fd(self): proc_pid_fd = os.open('/proc/%s' % os.getpid(), os.O_RDONLY | os.O_PATH | os.O_DIRECTORY) self.addCleanup(os.close, proc_pid_fd) ret = apport.Report.get_logind_session(proc_pid_fd=proc_pid_fd) if ret is None: # ensure that we don't run under logind, and thus the None is # justified with open('/proc/self/cgroup') as f: contents = f.read() sys.stdout.write('[not running under logind] ') sys.stdout.flush() self.assertNotIn('name=systemd:/user', contents) return (session, timestamp) = ret self.assertNotEqual(session, '') # session start must be >= 2014-01-01 and <= "now" self.assertLess(timestamp, time.time()) self.assertGreater(timestamp, time.mktime(time.strptime('2014-01-01', '%Y-%m-%d'))) def test_command_output_passes_env(self): fake_env = {'GCONV_PATH': '/tmp'} out = apport.report._command_output(['env'], env=fake_env) self.assertTrue(b'GCONV_PATH' in out) def test_extrapath_preferred(self): '''if extrapath is passed it is preferred''' bin_true = apport.report._which_extrapath('true', None) # need something to be preferred os.symlink('/bin/true', '/tmp/true') tmp_true = apport.report._which_extrapath('true', '/tmp') os.unlink('/tmp/true') self.assertEqual(tmp_true, '/tmp/true') self.assertEqual(bin_true, '/usr/bin/true') if __name__ == '__main__': unittest.main() �����apport-2.20.11/test/test_rethread.py����������������������������������������������������������������0000664�0000000�0000000�00000005635�14416105132�014246� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������import unittest, time, traceback, sys import apport.REThread def idle(seconds): '''Test thread to just wait a bit.''' time.sleep(seconds) def div(x, y): '''Test thread to divide two numbers.''' return x / y class T(unittest.TestCase): def test_return_value(self): '''return value works properly.''' t = apport.REThread.REThread(target=div, args=(42, 2)) t.start() t.join() # exc_raise() should be a no-op on successful functions t.exc_raise() self.assertEqual(t.return_value(), 21) self.assertEqual(t.exc_info(), None) def test_no_return_value(self): '''apport.REThread.REThread works if run() does not return anything.''' t = apport.REThread.REThread(target=idle, args=(0.5,)) t.start() # thread must be joined first self.assertRaises(AssertionError, t.return_value) t.join() self.assertEqual(t.return_value(), None) self.assertEqual(t.exc_info(), None) def test_exception(self): '''exception in thread is caught and passed.''' t = apport.REThread.REThread(target=div, args=(1, 0)) t.start() t.join() # thread did not terminate normally, no return value self.assertRaises(AssertionError, t.return_value) self.assertTrue(t.exc_info()[0] == ZeroDivisionError) exc = traceback.format_exception(t.exc_info()[0], t.exc_info()[1], t.exc_info()[2]) self.assertTrue(exc[-1].startswith('ZeroDivisionError'), 'not a ZeroDivisionError:' + str(exc)) self.assertTrue(exc[-2].endswith('return x / y\n')) def test_exc_raise(self): '''exc_raise() raises caught thread exception.''' t = apport.REThread.REThread(target=div, args=(1, 0)) t.start() t.join() # thread did not terminate normally, no return value self.assertRaises(AssertionError, t.return_value) raised = False try: t.exc_raise() except Exception as e: raised = True e = sys.exc_info() exc = traceback.format_exception(e[0], e[1], e[2]) self.assertTrue(exc[-1].startswith('ZeroDivisionError'), 'not a ZeroDivisionError:' + str(e)) self.assertTrue(exc[-2].endswith('return x / y\n')) self.assertTrue(raised) def test_exc_raise_complex(self): '''exceptions that can't be simply created are reraised correctly A unicode error takes several arguments on construction, so trying to recreate it by just passing an instance to the class, as the Python 3 reraise expression did, will fail. See lp:1024836 for details. ''' t = apport.REThread.REThread(target=str.encode, args=('\xff', 'ascii')) t.start() t.join() self.assertRaises(UnicodeError, t.exc_raise) if __name__ == "__main__": unittest.main() ���������������������������������������������������������������������������������������������������apport-2.20.11/test/test_signal_crashes.py����������������������������������������������������������0000664�0000000�0000000�00000117710�15013704444�015440� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2007 - 2009 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import tempfile, shutil, os, subprocess, signal, time, stat, sys import resource, errno, grp, unittest, socket, array import apport.fileutils test_package = 'coreutils' test_source = 'coreutils' # (core ulimit (bytes), expect core signal, expect core file, expect report) core_ulimit_table = [(1, False, False, False), (1000, True, False, True), (10000000, True, True, True), (-1, True, True, True)] required_fields = ['ProblemType', 'CoreDump', 'Date', 'ExecutablePath', 'ProcCmdline', 'ProcEnviron', 'ProcMaps', 'Signal', 'UserGroups'] orig_home = os.getenv('HOME') if orig_home is not None: del os.environ['HOME'] ifpath = os.path.expanduser(apport.report._ignore_file) if orig_home is not None: os.environ['HOME'] = orig_home # did we enable suid_dumpable? suid_dumpable = 0 try: with open('/proc/sys/fs/suid_dumpable') as f: suid_dumpable = int(f.read().strip()) except IOError: pass def pidof(program): """Find the process ID of a running program. This function wraps the pidof command and returns a set of process IDs. """ try: stdout = subprocess.check_output(["/bin/pidof", "-nx", program]) except subprocess.CalledProcessError as error: if error.returncode == 1: return set() raise # pragma: no cover return set(int(pid) for pid in stdout.decode().split()) class T(unittest.TestCase): TEST_EXECUTABLE = os.path.realpath("/bin/sleep") TEST_ARGS = ["86400"] def setUp(self): # use local report dir self.report_dir = tempfile.mkdtemp() os.environ['APPORT_REPORT_DIR'] = self.report_dir self.workdir = tempfile.mkdtemp() # move aside current ignore file if os.path.exists(ifpath): os.rename(ifpath, ifpath + '.apporttest') # do not write core files by default resource.setrlimit(resource.RLIMIT_CORE, (0, -1)) # that's the place where to put core dumps, etc. os.chdir('/tmp') # expected report name for test executable report self.test_report = os.path.join( apport.fileutils.report_dir, '%s.%i.crash' % (self.TEST_EXECUTABLE.replace('/', '_'), os.getuid())) def tearDown(self): shutil.rmtree(self.report_dir) shutil.rmtree(self.workdir) # clean up our ignore file if os.path.exists(ifpath): os.unlink(ifpath) orig_ignore_file = ifpath + '.apporttest' if os.path.exists(orig_ignore_file): os.rename(orig_ignore_file, ifpath) # permit tests to leave behind test_report, but nothing else if os.path.exists(self.test_report): apport.fileutils.delete_report(self.test_report) unexpected_reports = apport.fileutils.get_all_reports() for r in unexpected_reports: apport.fileutils.delete_report(r) self.assertEqual(unexpected_reports, []) def test_empty_core_dump(self): '''empty core dumps do not generate a report''' test_proc = self.create_test_process() try: app = subprocess.Popen([apport_path, str(test_proc), '42', '0', '1'], stdin=subprocess.PIPE, stderr=subprocess.PIPE) app.stdin.close() assert app.wait() == 0, app.stderr.read() app.stderr.close() finally: os.kill(test_proc, 9) os.waitpid(test_proc, 0) self.assertEqual(self.get_temp_all_reports(), []) def test_crash_apport(self): '''report generation with apport''' self.do_crash() # check crash report self.assertEqual(apport.fileutils.get_all_reports(), [self.test_report]) st = os.stat(self.test_report) self.assertEqual(stat.S_IMODE(st.st_mode), 0o640, 'report has correct permissions') self.assertEqual(st.st_uid, os.geteuid(), 'report has correct owner') # a subsequent crash does not alter unseen report self.do_crash() st2 = os.stat(self.test_report) self.assertEqual(st, st2, 'original unseen report did not get overwritten') # a subsequent crash alters seen report apport.fileutils.mark_report_seen(self.test_report) self.do_crash() st2 = os.stat(self.test_report) self.assertNotEqual(st, st2, 'original seen report gets overwritten') pr = apport.Report() with open(self.test_report, 'rb') as f: pr.load(f) self.assertTrue(set(required_fields).issubset(set(pr.keys())), 'report has required fields') self.assertEqual(pr['ExecutablePath'], self.TEST_EXECUTABLE) self.assertEqual( pr['ProcCmdline'], " ".join([self.TEST_EXECUTABLE] + self.TEST_ARGS), ) self.assertEqual(pr['Signal'], '%i' % signal.SIGSEGV) # check safe environment subset allowed_vars = ['SHELL', 'PATH', 'LANGUAGE', 'LANG', 'LC_CTYPE', 'LC_COLLATE', 'LC_TIME', 'LC_NUMERIC', 'LC_MONETARY', 'LC_MESSAGES', 'LC_PAPER', 'LC_NAME', 'LC_ADDRESS', 'LC_TELEPHONE', 'LC_MEASUREMENT', 'LC_IDENTIFICATION', 'LOCPATH', 'TERM', 'XDG_RUNTIME_DIR', 'LD_PRELOAD'] for line in pr['ProcEnviron'].splitlines(): (k, v) = line.split('=', 1) self.assertTrue(k in allowed_vars, 'report contains sensitive environment variable %s' % k) # UserGroups only has system groups for g in pr['UserGroups'].split(): if g == 'N/A': continue self.assertLess(grp.getgrnam(g).gr_gid, 500) self.assertFalse('root' in pr['UserGroups'], 'collected system groups are not those from root') @unittest.skip('fix test as multiple instances can be started within 30s') def test_parallel_crash(self): '''only one apport instance is ran at a time''' test_proc = self.create_test_process() test_proc2 = self.create_test_process(False, '/bin/dd', args=[]) try: app = subprocess.Popen([apport_path, str(test_proc), '42', '0', '1'], stdin=subprocess.PIPE, stderr=subprocess.PIPE) time.sleep(0.5) # give it some time to grab the lock app2 = subprocess.Popen([apport_path, str(test_proc2), '42', '0', '1'], stdin=subprocess.PIPE, stderr=subprocess.PIPE) # app should wait indefinitely for stdin, while app2 should terminate # immediately (give it 5 seconds) timeout = 50 while timeout >= 0: if app2.poll(): break time.sleep(0.1) timeout -= 1 self.assertGreater(timeout, 0, 'second apport instance terminates immediately') self.assertFalse(app.poll(), 'first apport instance is still running') # properly terminate app and app2 app2.stdin.close() app2.stderr.close() app.stdin.write(b'boo') app.stdin.close() self.assertEqual(app.wait(), 0, app.stderr.read()) app.stderr.close() finally: os.kill(test_proc, 9) os.waitpid(test_proc, 0) os.kill(test_proc2, 9) os.waitpid(test_proc2, 0) def test_unpackaged_binary(self): '''unpackaged binaries do not create a report''' local_exe = os.path.join(self.workdir, 'mybin') with open(local_exe, 'wb') as dest: with open(self.TEST_EXECUTABLE, 'rb') as src: dest.write(src.read()) os.chmod(local_exe, 0o755) self.do_crash(command=local_exe) self.assertEqual(apport.fileutils.get_all_reports(), []) def test_unpackaged_script(self): '''unpackaged scripts do not create a report''' local_exe = os.path.join(self.workdir, 'myscript') with open(local_exe, 'w') as f: f.write('#!/bin/sh\nkill -SEGV $$') os.chmod(local_exe, 0o755) self.do_crash(command=local_exe, args=[]) # absolute path self.assertEqual(apport.fileutils.get_all_reports(), []) # relative path os.chdir(self.workdir) self.do_crash(command='./myscript', args=[]) self.assertEqual(apport.fileutils.get_all_reports(), []) def test_ignore_sigquit(self): '''apport ignores SIGQUIT''' self.do_crash(sig=signal.SIGQUIT) self.assertEqual(apport.fileutils.get_all_reports(), []) def test_leak_inaccessible_files(self): '''existence of user-inaccessible files does not leak''' local_exe = os.path.join(self.workdir, 'myscript') with open(local_exe, 'w') as f: f.write('#!/usr/bin/perl\nsystem("mv $0 $0.exe");\nsystem("ln -sf /etc/shadow $0");\n$0="..$0";\nsleep(10);\n') os.chmod(local_exe, 0o755) self.do_crash(check_running=False, command=local_exe, args=[], sleep=2) leak = os.path.join(apport.fileutils.report_dir, '_usr_bin_perl.%i.crash' % (os.getuid())) pr = apport.Report() with open(leak, 'rb') as f: pr.load(f) # On a leak, no report is created since the executable path will be replaced # by the symlink path, and it doesn't belong to any package. self.assertEqual(pr['ExecutablePath'], '/usr/bin/perl') self.assertFalse('InterpreterPath' in pr) apport.fileutils.delete_report(leak) def test_flood_limit(self): '''limitation of crash report flood''' count = 0 while count < 7: sys.stderr.write('%i ' % count) sys.stderr.flush() self.do_crash() reports = apport.fileutils.get_new_reports() if not reports: break apport.fileutils.mark_report_seen(self.test_report) count += 1 self.assertGreater(count, 1, 'gets at least 2 repeated crashes') self.assertLess(count, 7, 'stops flooding after less than 7 repeated crashes') @unittest.skipIf(os.access('/run', os.W_OK), 'this test needs to be run as user') def test_nonwritable_cwd(self): '''core dump works for non-writable cwd''' os.chdir('/run') resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) self.do_crash() pr = apport.Report() self.assertTrue(os.path.exists(self.test_report)) self.assertFalse(os.path.exists('/run/core')) with open(self.test_report, 'rb') as f: pr.load(f) assert set(required_fields).issubset(set(pr.keys())) @unittest.skipIf(os.access('/run', os.W_OK), 'this test needs to be run as user') def test_nonwritable_cwd_nonreadable_exe(self): '''no core file for non-readable exe in non-writable cwd''' # CVE-2015-1324: if a user cannot read an executable, it behaves much # like a suid root binary in terms of writing a core dump # create a non-readable executable in a path we can modify which apport # regards as likely packaged (fd, myexe) = tempfile.mkstemp(dir='/var/tmp') self.addCleanup(os.unlink, myexe) with open(self.TEST_EXECUTABLE, 'rb') as f: os.write(fd, f.read()) os.close(fd) os.chmod(myexe, 0o111) os.chdir('/run') resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) if suid_dumpable: expected_owner = {1: os.getuid(), 2: 0}[suid_dumpable] self.do_crash(True, command=myexe, expect_corefile=True, expect_corefile_owner=expected_owner) # check crash report reports = apport.fileutils.get_new_system_reports() self.assertEqual(len(reports), 1) report = reports[0] st = os.stat(report) # FIXME: we would like to clean up this, but don't have privileges for that # os.unlink(report) self.assertEqual(stat.S_IMODE(st.st_mode), 0o640, 'report has correct permissions') # this must be owned by root for suid_dumpable == 2 as it is an unreadable binary self.assertEqual(st.st_uid, expected_owner, 'report has correct owner') # no user reports self.assertEqual(apport.fileutils.get_all_reports(), []) else: # no cores/dump if suid_dumpable == 0 self.do_crash(False, command=myexe, expect_corefile=False) self.assertEqual(apport.fileutils.get_all_reports(), []) def test_core_dump_packaged(self): '''packaged executables create core dumps on proper ulimits''' # for SEGV and ABRT we expect reports and core files for sig in (signal.SIGSEGV, signal.SIGABRT): for (kb, exp_sig, exp_file, exp_report) in core_ulimit_table: resource.setrlimit(resource.RLIMIT_CORE, (kb, -1)) self.do_crash(expect_coredump=exp_sig, expect_corefile=exp_file, expect_corefile_owner=os.geteuid(), sig=sig) if exp_report: self.assertEqual(apport.fileutils.get_all_reports(), [self.test_report]) self.check_report_coredump(self.test_report) apport.fileutils.delete_report(self.test_report) else: self.assertEqual(apport.fileutils.get_all_reports(), []) # creates core file with existing crash report, too self.do_crash(expect_corefile=True) apport.fileutils.delete_report(self.test_report) def test_core_dump_packaged_sigquit(self): '''packaged executables create core files, no report for SIGQUIT''' resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) self.do_crash(expect_corefile=True, sig=signal.SIGQUIT) self.assertEqual(apport.fileutils.get_all_reports(), []) def test_core_dump_unpackaged(self): '''unpackaged executables create core dumps on proper ulimits''' local_exe = os.path.join(self.workdir, 'mybin') with open(local_exe, 'wb') as dest: with open(self.TEST_EXECUTABLE, 'rb') as src: dest.write(src.read()) os.chmod(local_exe, 0o755) for sig in (signal.SIGSEGV, signal.SIGABRT, signal.SIGQUIT): for (kb, exp_sig, exp_file, exp_report) in core_ulimit_table: resource.setrlimit(resource.RLIMIT_CORE, (kb, -1)) self.do_crash(expect_coredump=exp_sig, expect_corefile=exp_file, expect_corefile_owner=os.geteuid(), command=local_exe, sig=sig) self.assertEqual(apport.fileutils.get_all_reports(), []) def test_core_file_injection(self): '''cannot inject core file''' # CVE-2015-1325: ensure that apport does not re-open its .crash report, # as that allows us to intercept and replace the report and tinker with # the core dump with open(self.test_report + '.inject', 'w') as f: # \x01pwned f.write('''ProblemType: Crash CoreDump: base64 H4sICAAAAAAC/0NvcmVEdW1wAA== Yywoz0tNAQBl1rhlBgAAAA== ''') # crash our test process and let it write a core file resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) pid = self.create_test_process() # get the name of the core file (core_name, core_path) = apport.fileutils.get_core_path(pid, self.TEST_EXECUTABLE) os.kill(pid, signal.SIGSEGV) # replace report with the crafted one above as soon as it exists and # becomes deletable for us; this is a busy loop, we need to be really # fast to intercept while True: try: os.unlink(self.test_report) break except OSError: pass os.rename(self.test_report + '.inject', self.test_report) os.waitpid(pid, 0) time.sleep(0.5) os.sync() # verify that we get the original core, not the injected one with open(core_path, 'rb') as f: core = f.read() self.assertNotIn(b'pwned', core) self.assertGreater(len(core), 10000) def test_limit_size(self): '''core dumps are capped on available memory size''' # determine how much data we have to pump into apport in order to make sure # that it will refuse the core dump r = apport.Report() with open('/proc/meminfo', 'rb') as f: r.load(f) totalmb = int(r['MemFree'].split()[0]) + int(r['Cached'].split()[0]) totalmb = int(totalmb / 1024) r = None test_proc = self.create_test_process() try: app = subprocess.Popen([apport_path, str(test_proc), '42', '0', '1'], stdin=subprocess.PIPE, stderr=subprocess.PIPE) # pipe an entire total memory size worth of spaces into it, which must be # bigger than the 'usable' memory size. apport should digest that and the # report should not have a core dump; NB that this should error out # with a SIGPIPE when apport aborts reading from stdin onemb = b' ' * 1048576 while totalmb > 0: if totalmb & 31 == 0: sys.stderr.write('.') sys.stderr.flush() try: app.stdin.write(onemb) except IOError as e: if e.errno == errno.EPIPE: break else: raise totalmb -= 1 (out, err) = app.communicate() self.assertEqual(app.returncode, 0, err) onemb = None finally: os.kill(test_proc, 9) os.waitpid(test_proc, 0) reports = self.get_temp_all_reports() self.assertEqual(len(reports), 1) pr = apport.Report() with open(reports[0], 'rb') as f: pr.load(f) os.unlink(reports[0]) self.assertEqual(pr['Signal'], '42') self.assertEqual(pr['ExecutablePath'], self.TEST_EXECUTABLE) self.assertFalse('CoreDump' in pr) # FIXME: sometimes this is empty!? if err: self.assertRegex( err.decode(), f"core dump exceeded.*dropped from .*" f"{os.path.basename(self.TEST_EXECUTABLE)}\\..*\\.crash", ) def test_ignore(self): '''ignoring executables''' self.do_crash() reports = apport.fileutils.get_all_reports() self.assertEqual(len(reports), 1) pr = apport.Report() with open(reports[0], 'rb') as f: pr.load(f) os.unlink(reports[0]) pr.mark_ignore() self.do_crash() self.assertEqual(apport.fileutils.get_all_reports(), []) def test_modify_after_start(self): '''ignores executables which got modified after process started''' # create executable in a path we can modify which apport regards as # likely packaged (fd, myexe) = tempfile.mkstemp(dir='/var/tmp') self.addCleanup(os.unlink, myexe) with open(self.TEST_EXECUTABLE, 'rb') as f: os.write(fd, f.read()) os.close(fd) os.chmod(myexe, 0o755) time.sleep(1) try: test_proc = self.create_test_process(command=myexe) # bump mtime of myexe to make it more recent than process start # time; ensure this works with file systems with only second # resolution time.sleep(1.1) os.utime(myexe, None) app = subprocess.Popen([apport_path, str(test_proc), '42', '0', '1'], stdin=subprocess.PIPE, stderr=subprocess.PIPE) err = app.communicate(b'foo')[1] self.assertEqual(app.returncode, 0, err) if os.getuid() > 0: self.assertIn(b'executable was modified after program start', err) else: with open('/var/log/apport.log') as f: lines = f.readlines() self.assertIn('executable was modified after program start', lines[-1]) finally: os.kill(test_proc, 9) os.waitpid(test_proc, 0) self.assertEqual(self.get_temp_all_reports(), []) def test_logging_file(self): '''outputs to log file, if available''' test_proc = self.create_test_process() log = os.path.join(self.workdir, 'apport.log') try: env = os.environ.copy() env['APPORT_LOG_FILE'] = log app = subprocess.Popen([apport_path, str(test_proc), '42', '0', '1'], stdin=subprocess.PIPE, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = app.communicate(b'hel\x01lo') finally: os.kill(test_proc, 9) os.waitpid(test_proc, 0) self.assertEqual(out, b'') self.assertEqual(err, b'') self.assertEqual(app.returncode, 0, err) with open(log) as f: logged = f.read() self.assertTrue('called for pid' in logged, logged) self.assertTrue('wrote report' in logged, logged) self.assertFalse('Traceback' in logged, logged) reports = self.get_temp_all_reports() self.assertEqual(len(reports), 1) pr = apport.Report() with open(reports[0], 'rb') as f: pr.load(f) os.unlink(reports[0]) self.assertEqual(pr['Signal'], '42') self.assertEqual(pr['ExecutablePath'], self.TEST_EXECUTABLE) self.assertEqual(pr['CoreDump'], b'hel\x01lo') def test_logging_stderr(self): '''outputs to stderr if log is not available''' test_proc = self.create_test_process() try: env = os.environ.copy() env['APPORT_LOG_FILE'] = '/not/existing/apport.log' app = subprocess.Popen([apport_path, str(test_proc), '42', '0', '1'], stdin=subprocess.PIPE, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = app.communicate(b'hel\x01lo') err = err.decode('UTF-8') finally: os.kill(test_proc, 9) os.waitpid(test_proc, 0) self.assertEqual(out, b'') self.assertEqual(app.returncode, 0, err) self.assertTrue('called for pid' in err, err) self.assertTrue('wrote report' in err, err) self.assertFalse('Traceback' in err, err) reports = self.get_temp_all_reports() self.assertEqual(len(reports), 1) pr = apport.Report() with open(reports[0], 'rb') as f: pr.load(f) os.unlink(reports[0]) self.assertEqual(pr['Signal'], '42') self.assertEqual(pr['ExecutablePath'], self.TEST_EXECUTABLE) self.assertEqual(pr['CoreDump'], b'hel\x01lo') @unittest.skipIf(os.geteuid() != 0, 'this test needs to be run as root') def test_crash_setuid_keep(self): '''report generation for setuid program which stays root''' # create suid root executable in a path we can modify which apport # regards as likely packaged (fd, myexe) = tempfile.mkstemp(dir='/var/tmp') self.addCleanup(os.unlink, myexe) with open(self.TEST_EXECUTABLE, 'rb') as f: os.write(fd, f.read()) os.close(fd) os.chmod(myexe, 0o4755) # run test program as user "mail" resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) if suid_dumpable: expected_owner = {1: 8, 2: 0}[suid_dumpable] # If a user can crash a suid root binary, the core file should # only be readable by root (for suid_dumpable == 2). self.do_crash(command=myexe, uid=8, expect_corefile=True, expect_corefile_owner=expected_owner) # check crash report reports = apport.fileutils.get_all_reports() self.assertEqual(len(reports), 1) report = reports[0] st = os.stat(report) os.unlink(report) self.assertEqual(stat.S_IMODE(st.st_mode), 0o640, 'report has correct permissions') # this must be owned by root for suid_dumpable == 2 as it is a setuid binary self.assertEqual(st.st_uid, expected_owner, 'report has correct owner') else: # no cores/dump if suid_dumpable == 0 self.do_crash(False, command=myexe, expect_corefile=False, uid=8) self.assertEqual(apport.fileutils.get_all_reports(), []) @unittest.skipIf(os.geteuid() != 0, 'this test needs to be run as root') def test_crash_system_slice(self): '''report generation for a protected process running in the system slice''' self.assertEqual(pidof(self.TEST_EXECUTABLE), set(), 'no running test executable processes') self.create_test_process(command='/usr/bin/systemd-run', check_running=False, args=['-t', '-q', '--slice=system.slice', '-p', 'ProtectSystem=true', self.TEST_EXECUTABLE] + self.TEST_ARGS) pids = pidof(self.TEST_EXECUTABLE) self.assertEqual(len(pids), 1) os.kill(pids.pop(), signal.SIGSEGV) self.wait_for_no_instance_running(self.TEST_EXECUTABLE) self.wait_for_apport_to_finish() # check crash report reports = apport.fileutils.get_all_reports() self.assertEqual(len(reports), 1) self.assertEqual( reports[0], f"/var/crash/{self.TEST_EXECUTABLE.replace('/', '_')}.0.crash", ) @unittest.skipUnless(os.path.exists('/bin/ping'), 'this test needs /bin/ping') @unittest.skipIf(os.geteuid() != 0, 'this test needs to be run as root') def test_crash_setuid_drop(self): '''report generation for setuid program which drops root''' # run ping as user "mail" resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) if suid_dumpable: expected_owner = {1: 8, 2: 0}[suid_dumpable] # If a user can crash a suid root binary, the core file should # only be readable by root (for suid_dumpable == 2). self.do_crash( command=os.path.realpath('/bin/ping'), args=['127.0.0.1'], expect_corefile=True, expect_corefile_owner=expected_owner, uid=8, ) # check crash report reports = apport.fileutils.get_all_reports() self.assertEqual(len(reports), 1) report = reports[0] st = os.stat(report) os.unlink(report) self.assertEqual(stat.S_IMODE(st.st_mode), 0o640, 'report has correct permissions') # this must be owned by root for suid_dumpable == 2 as it is a setuid binary self.assertEqual(st.st_uid, expected_owner, 'report has correct owner') else: # no cores/dump if suid_dumpable == 0 self.do_crash(False, command='/bin/ping', args=['127.0.0.1'], uid=8) self.assertEqual(apport.fileutils.get_all_reports(), []) @unittest.skipIf(os.geteuid() != 0, 'this test needs to be run as root') def test_crash_setuid_unpackaged(self): '''report generation for unpackaged setuid program''' # create suid root executable in a path we can modify which apport # regards as not packaged (fd, myexe) = tempfile.mkstemp(dir='/tmp') self.addCleanup(os.unlink, myexe) with open(self.TEST_EXECUTABLE, 'rb') as f: os.write(fd, f.read()) os.close(fd) os.chmod(myexe, 0o4755) # run test program as user "mail" resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) if suid_dumpable: expected_owner = {1: 8, 2: 0}[suid_dumpable] # If a user can crash a suid root binary, the core file should # only be readable by root (for suid_dumpable == 2). self.do_crash( command=myexe, expect_corefile=True, expect_corefile_owner=expected_owner, uid=8, ) else: # no cores/dump if suid_dumpable == 0 self.do_crash(False, command=myexe, expect_corefile=False, uid=8) # there should not be a crash report self.assertEqual(apport.fileutils.get_all_reports(), []) @unittest.skipIf(os.geteuid() != 0, 'this test needs to be run as root') def test_crash_setuid_nonwritable_cwd(self): '''report generation and core dump for setuid program, non-writable cwd''' # create suid root executable in a path we can modify which apport # regards as likely packaged (fd, myexe) = tempfile.mkstemp(dir='/var/tmp') self.addCleanup(os.unlink, myexe) with open(self.TEST_EXECUTABLE, 'rb') as f: os.write(fd, f.read()) os.close(fd) os.chmod(myexe, 0o4755) # run test program as user "mail" in /run (which should only be # writable to root) os.chdir('/run') resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) if suid_dumpable: expected_owner = {1: 8, 2: 0}[suid_dumpable] self.do_crash( command=myexe, expect_corefile=True, expect_corefile_owner=expected_owner, uid=8, ) # check crash report reports = apport.fileutils.get_all_reports() self.assertEqual(len(reports), 1) report = reports[0] st = os.stat(report) os.unlink(report) self.assertEqual(stat.S_IMODE(st.st_mode), 0o640, 'report has correct permissions') # this must be owned by root for suid_dumpable == 2 as it is a setuid binary self.assertEqual(st.st_uid, expected_owner, 'report has correct owner') else: # no core/report if suid_dumpable == 0 self.do_crash(False, command=myexe, expect_corefile=False, uid=8) self.assertEqual(apport.fileutils.get_all_reports(), []) def test_coredump_from_socket(self): '''forwarding of a core dump through socket This is being used in a container via systemd activation, where the core dump gets read from /run/apport.socket. ''' socket_path = os.path.join(self.workdir, 'apport.socket') test_proc = self.create_test_process() try: # emulate apport on the host which forwards the crash to the apport # socket in the container server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) server.bind(socket_path) server.listen(1) if os.fork() == 0: client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) client.connect(socket_path) with tempfile.TemporaryFile() as fd: fd.write(b'hel\x01lo') fd.flush() fd.seek(0) args = '%s 11 0 1' % test_proc fd_msg = (socket.SOL_SOCKET, socket.SCM_RIGHTS, array.array('i', [fd.fileno()])) client.sendmsg([args.encode()], [fd_msg]) os._exit(0) # call apport like systemd does via socket activation def child_setup(): os.environ['LISTEN_FDNAMES'] = 'connection' os.environ['LISTEN_FDS'] = '1' os.environ['LISTEN_PID'] = str(os.getpid()) # socket from server becomes fd 3 (SD_LISTEN_FDS_START) conn = server.accept()[0] os.dup2(conn.fileno(), 3) app = subprocess.Popen([apport_path], preexec_fn=child_setup, pass_fds=[3], stderr=subprocess.PIPE) log = app.communicate()[1] self.assertEqual(app.returncode, 0, log) server.close() finally: os.kill(test_proc, 9) os.waitpid(test_proc, 0) reports = self.get_temp_all_reports() self.assertEqual(len(reports), 1) pr = apport.Report() with open(reports[0], 'rb') as f: pr.load(f) os.unlink(reports[0]) self.assertEqual(pr['Signal'], '11') self.assertEqual(pr['ExecutablePath'], self.TEST_EXECUTABLE) self.assertEqual(pr['CoreDump'], b'hel\x01lo') # should not create report on the host self.assertEqual(apport.fileutils.get_all_system_reports(), []) # # Helper methods # def create_test_process(self, check_running=True, command=None, uid=None, args=None): '''Spawn test executable. Wait until it is fully running, and return its PID. ''' if command is None: command = self.TEST_EXECUTABLE if args is None: args = self.TEST_ARGS assert os.access(command, os.X_OK), command + ' is not executable' if check_running: assert subprocess.call(['pidof', command]) == 1, 'no running test executable processes' pid = os.fork() if pid == 0: if uid is not None: os.setuid(uid) # set UTF-8 environment variable, to check proper parsing in apport os.putenv('utf8trap', b'\xc3\xa0\xc3\xa4') os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stdout.fileno()) sys.stdin.close() os.setsid() os.execv(command, [command] + args) assert False, 'Could not execute ' + command # wait until child process has execv()ed properly while True: with open('/proc/%i/cmdline' % pid) as f: cmdline = f.read() if 'test_signal' in cmdline: time.sleep(0.1) else: break time.sleep(0.3) # needs some more setup time return pid def do_crash(self, expect_coredump=True, expect_corefile=False, sig=signal.SIGSEGV, check_running=True, sleep=0, command=None, uid=None, expect_corefile_owner=None, args=None): '''Generate a test crash. This runs command (by default TEST_EXECUTABLE) in cwd, lets it crash, and checks that it exits with the expected return code, leaving a core file behind if expect_corefile is set, and generating a crash report if expect_coredump is set. If check_running is set (default), this will abort if test_process is already running. ''' if command is None: command = self.TEST_EXECUTABLE if args is None: args = self.TEST_ARGS self.assertFalse(os.path.exists('core'), '%s/core already exists, please clean up first' % os.getcwd()) pid = self.create_test_process(check_running, command, uid=uid, args=args) (core_name, core_path) = apport.fileutils.get_core_path(pid, command, uid) if sleep > 0: time.sleep(sleep) os.kill(pid, sig) # wait max 5 seconds for the process to die timeout = 50 while timeout >= 0: (p, result) = os.waitpid(pid, os.WNOHANG) if p != 0: break time.sleep(0.1) timeout -= 1 else: os.kill(pid, signal.SIGKILL) os.waitpid(pid, 0) self.fail('test process does not die on signal %i' % sig) self.assertFalse(os.WIFEXITED(result), 'test process did not exit normally') self.assertTrue(os.WIFSIGNALED(result), 'test process died due to signal') self.assertEqual(os.WCOREDUMP(result), expect_coredump) self.assertEqual(os.WSTOPSIG(result), 0, 'test process was not signaled to stop') self.assertEqual(os.WTERMSIG(result), sig, 'test process died due to proper signal') self.wait_for_apport_to_finish() if check_running: self.assertEqual(subprocess.call(['pidof', command]), 1, 'no running test executable processes') if expect_corefile: self.assertTrue(os.path.exists(core_path), 'leaves wanted core file') try: # check core file permissions st = os.stat(core_path) self.assertEqual(stat.S_IMODE(st.st_mode), 0o400, 'core file has correct permissions') if expect_corefile_owner is not None: self.assertEqual(st.st_uid, expect_corefile_owner, 'core file has correct owner') # check that core file is valid gdb = subprocess.Popen(['gdb', '--batch', '--ex', 'bt', command, core_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = gdb.communicate() self.assertEqual(gdb.returncode, 0) out = out.decode() err = err.decode().strip() finally: os.unlink(core_path) else: if os.path.exists(core_path): try: os.unlink(core_path) except OSError as e: sys.stderr.write( 'WARNING: cannot clean up core file %s: %s\n' % (core_path, str(e))) self.fail('leaves unexpected core file behind') def get_temp_all_reports(self): '''Call apport.fileutils.get_all_reports() for our temp dir''' old_dir = apport.fileutils.report_dir apport.fileutils.report_dir = self.report_dir reports = apport.fileutils.get_all_reports() apport.fileutils.report_dir = old_dir return reports def check_report_coredump(self, report_path): '''Check that given report file has a valid core dump''' r = apport.Report() with open(report_path, 'rb') as f: r.load(f) self.assertTrue('CoreDump' in r) self.assertGreater(len(r['CoreDump']), 5000) r.add_gdb_info() self.assertTrue('\n#2' in r.get('Stacktrace', ''), r.get('Stacktrace', 'no Stacktrace field')) def wait_for_apport_to_finish(self, timeout_sec=10.0): self.wait_for_no_instance_running('apport', timeout_sec) def wait_for_no_instance_running(self, program, timeout_sec=10.0): while timeout_sec > 0: if not pidof(program): break time.sleep(0.2) timeout_sec -= 0.2 else: self.fail(f"Timeout exceeded, but {program} is still running.") # # main # # ensure we don't inherit an ignored SIGQUIT signal.signal(signal.SIGQUIT, signal.SIG_DFL) with open('/proc/sys/kernel/core_pattern') as f: core_pattern = f.read().strip() if core_pattern[0] != '|': sys.stderr.write('kernel crash dump helper is not active; please enable before running this test.\n') sys.exit(0) apport_path = core_pattern[1:].split()[0] if apport.fileutils.get_all_reports(): sys.stderr.write('Please remove all crash reports from /var/crash/ for this test suite:\n %s\n' % '\n '.join(os.listdir('/var/crash'))) sys.exit(1) unittest.main() ��������������������������������������������������������apport-2.20.11/test/test_ui.py����������������������������������������������������������������������0000664�0000000�0000000�00000303762�14416106601�013071� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# coding: UTF-8 import unittest, shutil, signal, tempfile, resource, pwd, time, os, sys import subprocess, errno, glob try: from cStringIO import StringIO StringIO # pyflakes except ImportError: from io import StringIO from io import BytesIO from unittest.mock import patch import apport.ui from apport.ui import _, run_as_real_user import apport.report import problem_report import apport.crashdb_impl.memory import stat logind_session = apport.Report.get_logind_session(os.getpid()) class TestSuiteUserInterface(apport.ui.UserInterface): '''Concrete apport.ui.UserInterface suitable for automatic testing''' def __init__(self): # use our dummy crashdb self.crashdb_conf = tempfile.NamedTemporaryFile() self.crashdb_conf.write(b'''default = 'testsuite' databases = { 'testsuite': { 'impl': 'memory', 'bug_pattern_url': None, }, 'debug': { 'impl': 'memory', 'distro': 'debug', }, } ''') self.crashdb_conf.flush() os.environ['APPORT_CRASHDB_CONF'] = self.crashdb_conf.name apport.ui.UserInterface.__init__(self) self.crashdb = apport.crashdb_impl.memory.CrashDatabase( None, {'dummy_data': 1, 'dupdb_url': ''}) # state of progress dialogs self.ic_progress_active = False self.ic_progress_pulses = 0 # count the pulses self.upload_progress_active = False self.upload_progress_pulses = 0 # these store the choices the ui_present_* calls do self.present_package_error_response = None self.present_kernel_error_response = None self.present_details_response = None self.question_yesno_response = None self.question_choice_response = None self.question_file_response = None self.opened_url = None self.present_details_shown = False self.clear_msg() def clear_msg(self): # last message box self.msg_title = None self.msg_text = None self.msg_severity = None # 'warning' or 'error' self.msg_choices = None def ui_present_report_details(self, allowed_to_report=True, modal_for=None): self.present_details_shown = True return self.present_details_response def ui_info_message(self, title, text): self.msg_title = title self.msg_text = text self.msg_severity = 'info' def ui_error_message(self, title, text): self.msg_title = title self.msg_text = text self.msg_severity = 'error' def ui_start_info_collection_progress(self): self.ic_progress_pulses = 0 self.ic_progress_active = True def ui_pulse_info_collection_progress(self): assert self.ic_progress_active self.ic_progress_pulses += 1 def ui_stop_info_collection_progress(self): self.ic_progress_active = False def ui_start_upload_progress(self): self.upload_progress_pulses = 0 self.upload_progress_active = True def ui_set_upload_progress(self, progress): assert self.upload_progress_active self.upload_progress_pulses += 1 def ui_stop_upload_progress(self): self.upload_progress_active = False def open_url(self, url): self.opened_url = url def ui_question_yesno(self, text): self.msg_text = text return self.question_yesno_response def ui_question_choice(self, text, options, multiple): self.msg_text = text self.msg_choices = options return self.question_choice_response def ui_question_file(self, text): self.msg_text = text return self.question_file_response class T(unittest.TestCase): def setUp(self): # we test a few strings, don't get confused by translations for v in ['LANG', 'LANGUAGE', 'LC_MESSAGES', 'LC_ALL']: try: del os.environ[v] except KeyError: pass self.orig_report_dir = apport.fileutils.report_dir apport.fileutils.report_dir = tempfile.mkdtemp() self.orig_symptom_script_dir = apport.ui.symptom_script_dir apport.ui.symptom_script_dir = tempfile.mkdtemp() self.orig_ignore_file = apport.report._ignore_file (fd, apport.report._ignore_file) = tempfile.mkstemp() os.close(fd) # need to do this to not break ui's ctor self.orig_argv = sys.argv sys.argv = ['ui-test'] self.ui = TestSuiteUserInterface() # demo report self.report = apport.Report() self.report['ExecutablePath'] = '/bin/bash' self.report['Package'] = 'libfoo1 1-1' self.report['SourcePackage'] = 'foo' self.report['Foo'] = 'A' * 1000 self.report['CoreDump'] = problem_report.CompressedValue(b'\x01' * 100000) # write demo report into temporary file self.report_file = tempfile.NamedTemporaryFile() self.update_report_file() # set up our local hook directory self.hookdir = tempfile.mkdtemp() self.orig_hook_dir = apport.report._hook_dir apport.report._hook_dir = self.hookdir # test suite should not stumble over local packages os.environ['APPORT_IGNORE_OBSOLETE_PACKAGES'] = '1' os.environ['APPORT_DISABLE_DISTRO_CHECK'] = '1' def update_report_file(self): self.report_file.seek(0) self.report_file.truncate() self.report.write(self.report_file) self.report_file.flush() def tearDown(self): sys.argv = self.orig_argv shutil.rmtree(apport.fileutils.report_dir) apport.fileutils.report_dir = self.orig_report_dir self.orig_report_dir = None shutil.rmtree(apport.ui.symptom_script_dir) apport.ui.symptom_script_dir = self.orig_symptom_script_dir self.orig_symptom_script_dir = None os.unlink(apport.report._ignore_file) apport.report._ignore_file = self.orig_ignore_file self.ui = None self.report_file.close() self.assertEqual(subprocess.call(['pidof', '/usr/bin/yes']), 1, 'no stray test processes') # clean up apport report from _gen_test_crash() for f in glob.glob('/var/crash/_usr_bin_yes.*.crash'): try: os.unlink(f) except OSError: pass shutil.rmtree(self.hookdir) apport.report._hook_dir = self.orig_hook_dir def test_format_filesize(self): '''format_filesize()''' self.assertEqual(self.ui.format_filesize(0), '0.0 KB') self.assertEqual(self.ui.format_filesize(2048), '2.0 KB') self.assertEqual(self.ui.format_filesize(2560), '2.6 KB') self.assertEqual(self.ui.format_filesize(999999), '1000.0 KB') self.assertEqual(self.ui.format_filesize(1000000), '1.0 MB') self.assertEqual(self.ui.format_filesize(2.7 * 1000000), '2.7 MB') self.assertEqual(self.ui.format_filesize(1024 * 1000000), '1.0 GB') self.assertEqual(self.ui.format_filesize(2560 * 1000000), '2.6 GB') def test_get_size_loaded(self): '''get_complete_size() and get_reduced_size() for loaded Reports''' self.ui.load_report(self.report_file.name) fsize = os.path.getsize(self.report_file.name) complete_ratio = float(self.ui.get_complete_size()) / fsize self.assertTrue(complete_ratio >= 0.9 and complete_ratio <= 1.1) rs = self.ui.get_reduced_size() self.assertTrue(rs > 1000) self.assertTrue(rs < 10000) # now add some information (e. g. from package hooks) self.ui.report['ExtraInfo'] = 'A' * 50000 s = self.ui.get_complete_size() self.assertTrue(s >= fsize + 49900) self.assertTrue(s < fsize + 60000) rs = self.ui.get_reduced_size() self.assertTrue(rs > 51000) self.assertTrue(rs < 60000) def test_get_size_constructed(self): '''get_complete_size() and get_reduced_size() for on-the-fly Reports''' self.ui.report = apport.Report('Bug') self.ui.report['Hello'] = 'World' s = self.ui.get_complete_size() self.assertTrue(s > 5) self.assertTrue(s < 100) self.assertEqual(s, self.ui.get_reduced_size()) def test_load_report(self): '''load_report()''' # valid report self.ui.load_report(self.report_file.name) self.assertEqual(set(self.ui.report.keys()), set(self.report.keys())) self.assertEqual(self.ui.report['Package'], self.report['Package']) self.assertEqual(self.ui.report['CoreDump'].get_value(), self.report['CoreDump'].get_value()) self.assertEqual(self.ui.msg_title, None) self.ui.clear_msg() # invalid base64 encoding self.report_file.seek(0) self.report_file.truncate() self.report_file.write(b'''Type: test Package: foo 1-1 CoreDump: base64 bOgUs= ''') self.report_file.flush() self.ui.load_report(self.report_file.name) self.assertTrue(self.ui.report is None) self.assertEqual(self.ui.msg_title, _('Invalid problem report')) self.assertEqual(self.ui.msg_severity, 'error') def test_restart(self): '''restart()''' # test with only ProcCmdline p = os.path.join(apport.fileutils.report_dir, 'ProcCmdline') r = os.path.join(apport.fileutils.report_dir, 'Custom') self.report['ProcCmdline'] = 'touch ' + p self.update_report_file() self.ui.load_report(self.report_file.name) self.ui.restart() time.sleep(1) # FIXME: race condition self.assertTrue(os.path.exists(p)) self.assertTrue(not os.path.exists(r)) os.unlink(p) # test with RespawnCommand self.report['RespawnCommand'] = 'touch ' + r self.update_report_file() self.ui.load_report(self.report_file.name) self.ui.restart() time.sleep(1) # FIXME: race condition self.assertTrue(not os.path.exists(p)) self.assertTrue(os.path.exists(r)) os.unlink(r) # test that invalid command does not make us fall apart del self.report['RespawnCommand'] self.report['ProcCmdline'] = '/nonexisting' self.update_report_file() self.ui.load_report(self.report_file.name) def test_collect_info_distro(self): '''collect_info() on report without information (distro bug)''' # report without any information (distro bug) self.ui.report = apport.Report('Bug') self.ui.collect_info() self.assertTrue(set(['Date', 'Uname', 'DistroRelease', 'ProblemType']).issubset( set(self.ui.report.keys()))) self.assertEqual(self.ui.ic_progress_pulses, 0, 'no progress dialog for distro bug info collection') def test_collect_info_exepath(self): '''collect_info() on report with only ExecutablePath''' # report with only package information self.report = apport.Report('Bug') self.report['ExecutablePath'] = '/bin/bash' self.update_report_file() self.ui.load_report(self.report_file.name) # add some tuple values, for robustness testing (might be added by # apport hooks) self.ui.report['Fstab'] = ('/etc/fstab', True) self.ui.report['CompressedValue'] = problem_report.CompressedValue(b'Test') self.ui.collect_info() self.assertTrue(set(['SourcePackage', 'Package', 'ProblemType', 'Uname', 'Dependencies', 'DistroRelease', 'Date', 'ExecutablePath']).issubset(set(self.ui.report.keys()))) self.assertTrue(self.ui.ic_progress_pulses > 0, 'progress dialog for package bug info collection') self.assertEqual(self.ui.ic_progress_active, False, 'progress dialog for package bug info collection finished') def test_collect_info_package(self): '''collect_info() on report with a package''' # report with only package information self.ui.report = apport.Report('Bug') self.ui.cur_package = 'bash' self.ui.collect_info() self.assertTrue(set(['SourcePackage', 'Package', 'ProblemType', 'Uname', 'Dependencies', 'DistroRelease', 'Date']).issubset(set(self.ui.report.keys()))) self.assertTrue(self.ui.ic_progress_pulses > 0, 'progress dialog for package bug info collection') self.assertEqual(self.ui.ic_progress_active, False, 'progress dialog for package bug info collection finished') def test_collect_info_permissions(self): '''collect_info() leaves the report accessible to the group''' self.ui.report = apport.Report('Bug') self.ui.cur_package = 'bash' self.ui.report_file = self.report_file.name self.ui.collect_info() self.assertTrue(os.stat(self.report_file.name).st_mode & stat.S_IRGRP) def test_collect_info_crashdb_spec(self): '''collect_info() with package hook that defines a CrashDB''' # set up hook with open(os.path.join(self.hookdir, 'source_bash.py'), 'w') as f: f.write('''def add_info(report, ui): report['CrashDB'] = "{ 'impl': 'memory', 'local_opt': '1' }" report['BashHook'] = 'Moo' ''') self.ui.report = apport.Report('Bug') self.ui.cur_package = 'bash' self.ui.collect_info() self.assertTrue('CrashDB' in self.ui.report) self.assertFalse('UnreportableReason' in self.ui.report, self.ui.report.get('UnreportableReason')) self.assertEqual(self.ui.report['BashHook'], 'Moo') self.assertEqual(self.ui.crashdb.options['local_opt'], '1') def test_collect_info_crashdb_name(self): '''collect_info() with package hook that chooses a different CrashDB''' # set up hook with open(os.path.join(self.hookdir, 'source_bash.py'), 'w') as f: f.write('''def add_info(report, ui): report['CrashDB'] = 'debug' report['BashHook'] = 'Moo' ''') self.ui.report = apport.Report('Bug') self.ui.cur_package = 'bash' self.ui.collect_info() self.assertFalse('UnreportableReason' in self.ui.report, self.ui.report.get('UnreportableReason')) self.assertEqual(self.ui.report['BashHook'], 'Moo') self.assertEqual(self.ui.crashdb.options['distro'], 'debug') def test_collect_info_crashdb_errors(self): '''collect_info() with package hook setting a broken CrashDB field''' # nonexisting implementation with open(os.path.join(self.hookdir, 'source_bash.py'), 'w') as f: f.write('''def add_info(report, ui): report['CrashDB'] = "{ 'impl': 'nonexisting', 'local_opt': '1' }" ''') self.ui.report = apport.Report('Bug') self.ui.cur_package = 'bash' self.ui.collect_info() self.assertTrue('nonexisting' in self.ui.report['UnreportableReason'], self.ui.report.get('UnreportableReason', '<not set>')) # invalid syntax with open(os.path.join(self.hookdir, 'source_bash.py'), 'w') as f: f.write('''def add_info(report, ui): report['CrashDB'] = "{ 'impl': 'memory', 'local_opt'" ''') self.ui.report = apport.Report('Bug') self.ui.cur_package = 'bash' self.ui.collect_info() self.assertTrue('package hook' in self.ui.report['UnreportableReason'], self.ui.report.get('UnreportableReason', '<not set>')) # nonexisting name with open(os.path.join(self.hookdir, 'source_bash.py'), 'w') as f: f.write('''def add_info(report, ui): report['CrashDB'] = 'nonexisting' ''') self.ui.report = apport.Report('Bug') self.ui.cur_package = 'bash' self.ui.collect_info() self.assertTrue('nonexisting' in self.ui.report['UnreportableReason'], self.ui.report.get('UnreportableReason', '<not set>')) # string with unsafe contents with open(os.path.join(self.hookdir, 'source_bash.py'), 'w') as f: f.write('''def add_info(report, ui): report['CrashDB'] = """{'impl': 'memory', 'trap': exec('open("/tmp/pwned", "w").close()')}""" ''') self.ui.report = apport.Report('Bug') self.ui.cur_package = 'bash' self.ui.collect_info() self.assertIn('package hook', self.ui.report['UnreportableReason']) self.assertFalse(os.path.exists('/tmp/pwned')) def test_handle_duplicate(self): '''handle_duplicate()''' self.ui.load_report(self.report_file.name) self.assertEqual(self.ui.handle_duplicate(), False) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) demo_url = 'http://example.com/1' self.report['_KnownReport'] = demo_url self.update_report_file() self.ui.load_report(self.report_file.name) self.assertEqual(self.ui.handle_duplicate(), True) self.assertEqual(self.ui.msg_severity, 'info') self.assertEqual(self.ui.opened_url, demo_url) self.ui.opened_url = None demo_url = 'http://example.com/1' self.report['_KnownReport'] = '1' self.update_report_file() self.ui.load_report(self.report_file.name) self.assertEqual(self.ui.handle_duplicate(), True) self.assertEqual(self.ui.msg_severity, 'info') self.assertEqual(self.ui.opened_url, None) def test_run_nopending(self): '''running the frontend without any pending reports''' sys.argv = [] self.ui = TestSuiteUserInterface() self.assertEqual(self.ui.run_argv(), False) def test_run_restart(self): '''running the frontend with pending reports offers restart''' r = self._gen_test_crash() report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) sys.argv = [] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': False, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_argv() self.assertEqual(self.ui.offer_restart, True) def test_run_report_bug_noargs(self): '''run_report_bug() without specifying arguments''' sys.argv = ['ui-test', '-f'] self.ui = TestSuiteUserInterface() self.assertEqual(self.ui.run_argv(), False) self.assertEqual(self.ui.msg_severity, 'error') def test_run_version(self): '''run_report_bug() as "ubuntu-bug" with version argument''' sys.argv = ['ubuntu-bug', '-v'] self.ui = TestSuiteUserInterface() orig_stdout = sys.stdout sys.stdout = StringIO() self.assertEqual(self.ui.run_argv(), True) output = sys.stdout.getvalue() sys.stdout = orig_stdout self.assertEqual(output, apport.ui.__version__ + '\n') def test_run_report_bug_package(self): '''run_report_bug() for a package''' sys.argv = ['ui-test', '-f', '-p', 'bash'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_severity, None) self.assertEqual(self.ui.msg_title, None) self.assertTrue(self.ui.present_details_shown) self.assertEqual(self.ui.opened_url, 'http://bash.bugs.example.com/%i' % self.ui.crashdb.latest_id()) self.assertTrue(self.ui.ic_progress_pulses > 0) self.assertEqual(self.ui.report['SourcePackage'], 'bash') self.assertTrue('Dependencies' in self.ui.report.keys()) self.assertTrue('ProcEnviron' in self.ui.report.keys()) self.assertEqual(self.ui.report['ProblemType'], 'Bug') # should not crash on nonexisting package sys.argv = ['ui-test', '-f', '-p', 'nonexisting_gibberish'] self.ui = TestSuiteUserInterface() try: self.ui.run_argv() except SystemExit: pass self.assertEqual(self.ui.msg_severity, 'error') def test_run_report_bug_pid_tags(self): '''run_report_bug() for a pid with extra tags''' # fork a test process pid = os.fork() if pid == 0: os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stdout.fileno()) os.execv('/usr/bin/yes', ['yes']) assert False, 'Could not execute /usr/bin/yes' time.sleep(0.5) try: # report a bug on yes process sys.argv = ['ui-test', '-f', '--tag', 'foo', '-P', str(pid)] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) finally: # kill test process os.kill(pid, signal.SIGKILL) os.waitpid(pid, 0) self.assertTrue('SourcePackage' in self.ui.report.keys()) self.assertTrue('Dependencies' in self.ui.report.keys()) self.assertTrue('ProcMaps' in self.ui.report.keys()) self.assertEqual(self.ui.report['ExecutablePath'], '/usr/bin/yes') self.assertFalse('ProcCmdline' in self.ui.report) # privacy! self.assertTrue('ProcEnviron' in self.ui.report.keys()) self.assertEqual(self.ui.report['ProblemType'], 'Bug') self.assertTrue('Tags' in self.ui.report.keys()) self.assertTrue('foo' in self.ui.report['Tags']) self.assertEqual(self.ui.msg_severity, None) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, 'http://coreutils.bugs.example.com/%i' % self.ui.crashdb.latest_id()) self.assertTrue(self.ui.present_details_shown) self.assertTrue(self.ui.ic_progress_pulses > 0) @classmethod def _find_unused_pid(klass): '''Find and return an unused PID''' pid = 1 while True: pid += 1 try: os.kill(pid, 0) except OSError as e: if e.errno == errno.ESRCH: break return pid def test_run_report_bug_wrong_pid(self): '''run_report_bug() for a nonexisting pid''' # silently ignore missing PID; this happens when the user closes # the application prematurely pid = self._find_unused_pid() sys.argv = ['ui-test', '-f', '-P', str(pid)] self.ui = TestSuiteUserInterface() self.ui.run_argv() def test_run_report_bug_noperm_pid(self): '''run_report_bug() for a pid which runs as a different user''' restore_root = False if os.getuid() == 0: # temporarily drop to normal user "mail" os.setresuid(8, 8, -1) restore_root = True try: sys.argv = ['ui-test', '-f', '-P', '1'] self.ui = TestSuiteUserInterface() self.ui.run_argv() self.assertEqual(self.ui.msg_severity, 'error') finally: if restore_root: os.setresuid(0, 0, -1) def test_run_report_bug_unpackaged_pid(self): '''run_report_bug() for a pid of an unpackaged program''' # create unpackaged test program (fd, exename) = tempfile.mkstemp() with open('/usr/bin/yes', 'rb') as f: os.write(fd, f.read()) os.close(fd) os.chmod(exename, 0o755) # unpackaged test process pid = os.fork() if pid == 0: os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stdout.fileno()) os.execv(exename, [exename]) # give the execv() some time to finish time.sleep(0.2) try: sys.argv = ['ui-test', '-f', '-P', str(pid)] self.ui = TestSuiteUserInterface() self.assertRaises(SystemExit, self.ui.run_argv) finally: os.kill(pid, signal.SIGKILL) os.wait() os.unlink(exename) self.assertEqual(self.ui.msg_severity, 'error') @patch("apport.packaging.get_version") def test_run_report_bug_kernel_thread(self, get_version_mock): '''run_report_bug() for a pid of a kernel thread''' # The kernel package might not be installed in chroot environments. # Therefore mock get_version for the kernel package. get_version_mock.return_value = '5.15.0-33.34' for path in glob.glob('/proc/[0-9]*/stat'): with open(path) as f: stat = f.read().split() flags = int(stat[8]) if flags & apport.ui.PF_KTHREAD: pid = int(stat[0]) break else: self.skipTest("no kernel thread found") sys.argv = ['ui-test', '-f', '-P', str(pid)] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_argv() kernel_package = apport.packaging.get_kernel_package() self.assertEqual( self.ui.report['Package'], f"{kernel_package} {get_version_mock.return_value}", ) get_version_mock.assert_any_call(kernel_package) def test_run_report_bug_file(self): '''run_report_bug() with saving report into a file''' d = os.path.join(apport.fileutils.report_dir, 'home') os.mkdir(d) reportfile = os.path.join(d, 'bashisbad.apport') sys.argv = ['ui-test', '-f', '-p', 'bash', '--save', reportfile] self.ui = TestSuiteUserInterface() self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_severity, None) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) self.assertFalse(self.ui.present_details_shown) self.assertTrue(self.ui.ic_progress_pulses > 0) r = apport.Report() with open(reportfile, 'rb') as f: r.load(f) self.assertEqual(r['SourcePackage'], 'bash') self.assertTrue('Dependencies' in r.keys()) self.assertTrue('ProcEnviron' in r.keys()) self.assertEqual(r['ProblemType'], 'Bug') # report it sys.argv = ['ui-test', '-c', reportfile] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_text, None) self.assertEqual(self.ui.msg_severity, None) self.assertTrue(self.ui.present_details_shown) def _gen_test_crash(self, uid=None): '''Generate a Report with real crash data''' # create a test executable test_executable = '/usr/bin/yes' assert os.access(test_executable, os.X_OK), test_executable + ' is not executable' pid = os.fork() if pid == 0: os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stdout.fileno()) sys.stdin.close() os.setsid() resource.setrlimit(resource.RLIMIT_CORE, (-1, -1)) os.chdir(apport.fileutils.report_dir) os.execv(test_executable, [test_executable]) assert False, 'Could not execute ' + test_executable time.sleep(0.5) # generate crash report r = apport.Report() r['ExecutablePath'] = test_executable r['Signal'] = '11' r.add_proc_info(pid) r.add_user_info() r.add_os_info() # generate a core dump if uid is None: uid = os.getuid() (core_name, core_path) = apport.fileutils.get_core_path(pid, test_executable, uid) os.kill(pid, signal.SIGSEGV) os.waitpid(pid, 0) # Otherwise the core dump is empty. time.sleep(0.5) assert os.path.exists(core_path) r['CoreDump'] = (core_path,) return r def test_run_crash(self): '''run_crash()''' r = self._gen_test_crash() # write crash report report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') # cancel crash notification dialog with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': False, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) self.assertEqual(self.ui.ic_progress_pulses, 0) self.assertEqual(self.ui.offer_restart, False) # report in crash notification dialog, send full report with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, 'http://coreutils.bugs.example.com/%i' % self.ui.crashdb.latest_id()) self.assertFalse(self.ui.ic_progress_active) self.assertNotEqual(self.ui.ic_progress_pulses, 0) self.assertTrue(self.ui.present_details_shown) self.assertTrue('SourcePackage' in self.ui.report.keys()) self.assertTrue('Dependencies' in self.ui.report.keys()) self.assertTrue('Stacktrace' in self.ui.report.keys()) self.assertTrue('ProcEnviron' in self.ui.report.keys()) self.assertFalse('ExecutableTimestamp' in self.ui.report.keys()) self.assertFalse('StacktraceAddressSignature' in self.ui.report.keys()) self.assertEqual(self.ui.report['ProblemType'], 'Crash') self.assertTrue(len(self.ui.report['CoreDump']) > 10000) self.assertTrue(self.ui.report['Title'].startswith('yes crashed with SIGSEGV')) # so far we did not blacklist, verify that self.assertTrue(not self.ui.report.check_ignored()) # cancel crash notification dialog and blacklist with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': False, 'blacklist': True, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) self.assertEqual(self.ui.ic_progress_pulses, 0) self.assertTrue(self.ui.report.check_ignored()) self.assertEqual(self.ui.offer_restart, False) def test_run_crash_abort(self): '''run_crash() for an abort() without assertion message''' r = self._gen_test_crash() r['Signal'] = '6' report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertTrue('SourcePackage' in self.ui.report.keys()) self.assertTrue('Dependencies' in self.ui.report.keys()) self.assertTrue('Stacktrace' in self.ui.report.keys()) self.assertTrue('ProcEnviron' in self.ui.report.keys()) self.assertFalse('ExecutableTimestamp' in self.ui.report.keys()) self.assertEqual(self.ui.report['Signal'], '6') # we disable the ABRT filtering, we want these crashes after all # self.assertTrue('assert' in self.ui.msg_text, '%s: %s' % # (self.ui.msg_title, self.ui.msg_text)) # self.assertEqual(self.ui.msg_severity, 'info') self.assertEqual(self.ui.msg_severity, None) self.assertTrue(self.ui.present_details_shown) def test_run_crash_broken(self): '''run_crash() for an invalid core dump''' # generate broken crash report r = apport.Report() r['ExecutablePath'] = '/usr/bin/yes' r['Signal'] = '11' r['CoreDump'] = problem_report.CompressedValue() r['CoreDump'].gzipvalue = b'AAAAAAAA' r.add_user_info() report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, 'info', self.ui.msg_text) self.assertTrue('decompress' in self.ui.msg_text) self.assertTrue(self.ui.present_details_shown) def test_run_crash_argv_file(self): '''run_crash() through a file specified on the command line''' # valid self.report['Package'] = 'bash' self.update_report_file() sys.argv = ['ui-test', '-c', self.report_file.name] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_text, None) self.assertEqual(self.ui.msg_severity, None) self.assertTrue(self.ui.present_details_shown) # unreportable self.report['Package'] = 'bash' self.report['UnreportableReason'] = b'It stinks. \xe2\x99\xa5'.decode('UTF-8') self.update_report_file() sys.argv = ['ui-test', '-c', self.report_file.name] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) self.assertTrue('It stinks.' in self.ui.msg_text, '%s: %s' % (self.ui.msg_title, self.ui.msg_text)) self.assertEqual(self.ui.msg_severity, 'info') # should not die with an exception on an invalid name sys.argv = ['ui-test', '-c', '/nonexisting.crash'] self.ui = TestSuiteUserInterface() self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_severity, 'error') def test_run_crash_unreportable(self): '''run_crash() on a crash with the UnreportableReason field''' self.report['UnreportableReason'] = 'It stinks.' self.report['ExecutablePath'] = '/bin/bash' self.report['Package'] = 'bash 1' self.update_report_file() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(self.report_file.name) self.assertTrue('It stinks.' in self.ui.msg_text, '%s: %s' % (self.ui.msg_title, self.ui.msg_text)) self.assertEqual(self.ui.msg_severity, 'info') def test_run_crash_malicious_crashdb(self): '''run_crash() on a crash with malicious CrashDB''' self.report['ExecutablePath'] = '/bin/bash' self.report['Package'] = 'bash 1' self.report['CrashDB'] = "{'impl': 'memory', 'crash_config': open('/tmp/pwned', 'w').close()}" self.update_report_file() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(self.report_file.name) self.assertFalse(os.path.exists('/tmp/pwned')) self.assertIn('invalid crash database definition', self.ui.msg_text) def test_run_crash_malicious_package(self): '''Package: path traversal''' bad_hook = tempfile.NamedTemporaryFile(suffix='.py') bad_hook.write(b"def add_info(r, u):\n open('/tmp/pwned', 'w').close()") bad_hook.flush() self.report['ExecutablePath'] = '/bin/bash' self.report['Package'] = '../' * 20 + os.path.splitext(bad_hook.name)[0] self.update_report_file() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(self.report_file.name) self.assertFalse(os.path.exists('/tmp/pwned')) self.assertIn('invalid Package:', self.ui.msg_text) def test_run_crash_malicious_exec_path(self): '''ExecutablePath: path traversal''' hook_dir = '/tmp/share/apport/package-hooks' os.makedirs(hook_dir, exist_ok=True) bad_hook = tempfile.NamedTemporaryFile(dir=hook_dir, suffix='.py') bad_hook.write(b"def add_info(r, u):\n open('/tmp/pwned', 'w').close()") bad_hook.flush() self.report['ExecutablePath'] = '/opt/../' + hook_dir self.report['Package'] = os.path.splitext(bad_hook.name)[0].replace(hook_dir, '') self.update_report_file() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(self.report_file.name) self.assertFalse(os.path.exists('/tmp/pwned')) def test_run_crash_ignore(self): '''run_crash() on a crash with the Ignore field''' self.report['Ignore'] = 'True' self.report['ExecutablePath'] = '/bin/bash' self.report['Package'] = 'bash 1' self.update_report_file() self.ui.run_crash(self.report_file.name) self.assertEqual(self.ui.msg_severity, None) def test_run_crash_nocore(self): '''run_crash() for a crash dump without CoreDump''' # create a test executable test_executable = '/usr/bin/yes' assert os.access(test_executable, os.X_OK), test_executable + ' is not executable' pid = os.fork() if pid == 0: os.setsid() os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stdout.fileno()) os.execv(test_executable, [test_executable]) assert False, 'Could not execute ' + test_executable try: time.sleep(0.5) # generate crash report r = apport.Report() r['ExecutablePath'] = test_executable r['Signal'] = '42' r.add_proc_info(pid) r.add_user_info() finally: # kill test executable os.kill(pid, signal.SIGKILL) os.waitpid(pid, 0) # write crash report report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) # run self.ui = TestSuiteUserInterface() self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, 'error') self.assertTrue('memory' in self.ui.msg_text, '%s: %s' % (self.ui.msg_title, self.ui.msg_text)) def test_run_crash_preretraced(self): '''run_crash() pre-retraced reports. This happens with crashes which are pre-processed by apport-retrace. ''' r = self._gen_test_crash() # effect of apport-retrace -c r.add_gdb_info() del r['CoreDump'] # write crash report report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') # report in crash notification dialog, cancel details report with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': False, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None, 'has %s message: %s: %s' % ( self.ui.msg_severity, str(self.ui.msg_title), str(self.ui.msg_text))) self.assertEqual(self.ui.msg_title, None) self.assertTrue(self.ui.present_details_shown) def test_run_crash_precollected(self): '''run_crash() on complete report on uninstalled package This happens when reporting a problem from a different machine through copying a .crash file. ''' self.ui.report = self._gen_test_crash() self.ui.collect_info() # now pretend to move it to a machine where the package is not # installed self.ui.report['Package'] = 'uninstalled_pkg 1' self.ui.report['ExecutablePath'] = '/usr/bin/uninstalled_program' self.ui.report['InterpreterPath'] = '/usr/bin/uninstalled_interpreter' # write crash report report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: self.ui.report.write(f) # report it self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.cur_package, 'uninstalled_pkg') self.assertEqual(self.ui.msg_severity, None, 'has %s message: %s: %s' % ( self.ui.msg_severity, str(self.ui.msg_title), str(self.ui.msg_text))) self.assertTrue(self.ui.opened_url.startswith('http://coreutils.bugs.example.com')) self.assertTrue(self.ui.present_details_shown) def test_run_crash_errors(self): '''run_crash() on various error conditions''' # crash report with invalid Package name r = apport.Report() r['ExecutablePath'] = '/bin/bash' r['Package'] = 'foobarbaz' report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertRaises(SystemExit, self.ui.run_crash, report_file) self.assertEqual(self.ui.msg_title, _('Invalid problem report')) self.assertEqual(self.ui.msg_severity, 'error') def test_run_crash_uninstalled(self): '''run_crash() on reports with subsequently uninstalled packages''' # program got uninstalled between crash and report r = self._gen_test_crash() r['ExecutablePath'] = '/bin/nonexisting' r['Package'] = 'bash' report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_title, _('Problem in bash')) self.assertIn('not installed any more', self.ui.msg_text) # interpreted program got uninstalled between crash and report r = apport.Report() r['ExecutablePath'] = '/bin/nonexisting' r['InterpreterPath'] = '/usr/bin/python' r['Traceback'] = 'ZeroDivisionError: integer division or modulo by zero' self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_title, _('Problem in bash')) self.assertIn('not installed any more', self.ui.msg_text) # interpreter got uninstalled between crash and report r = apport.Report() r['ExecutablePath'] = '/bin/sh' r['InterpreterPath'] = '/usr/bin/nonexisting' r['Traceback'] = 'ZeroDivisionError: integer division or modulo by zero' self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_title, _('Problem in bash')) self.assertIn('not installed any more', self.ui.msg_text) def test_run_crash_updated_binary(self): '''run_crash() on binary that got updated in the meantime''' r = self._gen_test_crash() r['ExecutableTimestamp'] = str(int(r['ExecutableTimestamp']) - 10) report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertFalse('ExecutableTimestamp' in self.ui.report) self.assertTrue(self.ui.report['ExecutablePath'] in self.ui.msg_text, '%s: %s' % (self.ui.msg_title, self.ui.msg_text)) self.assertTrue('changed' in self.ui.msg_text, '%s: %s' % (self.ui.msg_title, self.ui.msg_text)) self.assertEqual(self.ui.msg_severity, 'info') def test_run_crash_package(self): '''run_crash() for a package error''' # generate crash report r = apport.Report('Package') r['Package'] = 'bash' r['SourcePackage'] = 'bash' r['ErrorMessage'] = 'It broke' r['VarLogPackagerlog'] = 'foo\nbar' r.add_os_info() # write crash report report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') # cancel crash notification dialog with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': False, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) self.assertEqual(self.ui.ic_progress_pulses, 0) self.assertTrue(self.ui.present_details_shown) # report in crash notification dialog, send report with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, 'http://bash.bugs.example.com/%i' % self.ui.crashdb.latest_id()) self.assertTrue(self.ui.present_details_shown) self.assertTrue('SourcePackage' in self.ui.report.keys()) self.assertTrue('Package' in self.ui.report.keys()) self.assertEqual(self.ui.report['ProblemType'], 'Package') # verify that additional information has been collected self.assertTrue('Architecture' in self.ui.report.keys()) self.assertTrue('DistroRelease' in self.ui.report.keys()) self.assertTrue('Uname' in self.ui.report.keys()) def test_run_crash_kernel(self): '''run_crash() for a kernel error''' package = apport.packaging.get_kernel_package() try: src_pkg = apport.packaging.get_source(package) except ValueError: # Kernel package not installed (e.g. in container) src_pkg = 'linux' # set up hook f = open(os.path.join(self.hookdir, 'source_%s.py' % src_pkg), 'w') f.write('''def add_info(report, ui): report['KernelDebug'] = 'LotsMoreInfo' ''') f.close() # generate crash report r = apport.Report('KernelCrash') r['Package'] = package r['SourcePackage'] = src_pkg # write crash report report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') # cancel crash notification dialog with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': False, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None, 'error: %s - %s' % (self.ui.msg_title, self.ui.msg_text)) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) self.assertEqual(self.ui.ic_progress_pulses, 0) self.assertTrue(self.ui.present_details_shown) # report in crash notification dialog, send report with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None, str(self.ui.msg_title) + ' ' + str(self.ui.msg_text)) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, 'http://%s.bugs.example.com/%i' % (src_pkg, self.ui.crashdb.latest_id())) self.assertTrue(self.ui.present_details_shown) self.assertTrue('SourcePackage' in self.ui.report.keys()) # did we run the hooks properly? self.assertTrue('KernelDebug' in self.ui.report.keys()) self.assertEqual(self.ui.report['ProblemType'], 'KernelCrash') def test_run_crash_anonymity(self): '''run_crash() anonymization''' r = self._gen_test_crash() utf8_val = b'\xc3\xa4 ' + os.uname()[1].encode('UTF-8') + b' \xe2\x99\xa5 ' r['ProcUnicodeValue'] = utf8_val.decode('UTF-8') r['ProcByteArrayValue'] = utf8_val report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertFalse('ProcCwd' in self.ui.report) dump = BytesIO() # this contains more or less random characters which might contain the # user name del self.ui.report['CoreDump'] self.ui.report.write(dump) report = dump.getvalue().decode('UTF-8') p = pwd.getpwuid(os.getuid()) bad_strings = [os.uname()[1], p[0], p[4], p[5], os.getcwd()] for s in bad_strings: self.assertFalse(s in report, 'dump contains sensitive string: %s:\n%s' % (s, report)) def test_run_crash_anonymity_order(self): '''run_crash() anonymization runs after info and duplicate collection''' # pretend the hostname looks like a hex number which matches # the stack trace address uname = os.uname() uname = (uname[0], '0xDEADBEEF', uname[2], uname[3], uname[4]) orig_uname = os.uname orig_add_gdb_info = apport.report.Report.add_gdb_info os.uname = lambda: uname def fake_add_gdb_info(self): self['Stacktrace'] = '''#0 0xDEADBEEF in h (p=0x0) at crash.c:25 #1 0x10000042 in g (x=1, y=42) at crash.c:26 #1 0x10000001 in main () at crash.c:40 ''' self['ProcMaps'] = ''' 10000000-DEADBEF0 r-xp 00000000 08:02 100000 /bin/crash ''' assert self.crash_signature_addresses() is not None try: r = self._gen_test_crash() apport.report.Report.add_gdb_info = fake_add_gdb_info r['ProcAuxInfo'] = 'my 0xDEADBEEF' report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) # if this runs anonymization before the duplicate signature, then this # will fail, as 0xDEADhostname is an invalid address self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertEqual(self.ui.report['ProcAuxInfo'], 'my hostname') # after anonymization this should mess up Stacktrace; this mostly # confirms that our test logic works self.assertEqual(self.ui.report.crash_signature_addresses(), None) finally: os.uname = orig_uname apport.report.Report.add_gdb_info = orig_add_gdb_info def test_run_crash_anonymity_substring(self): '''run_crash() anonymization only catches whole words''' # pretend the hostname is "ed", a substring of e. g. "crashed" uname = os.uname() uname = (uname[0], 'ed', uname[2], uname[3], uname[4]) orig_uname = os.uname os.uname = lambda: uname try: r = self._gen_test_crash() r['ProcInfo1'] = 'my ed' r['ProcInfo2'] = '"ed.localnet"' r['ProcInfo3'] = 'education' report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertTrue(self.ui.report['Title'].startswith('yes crashed with SIGSEGV'), self.ui.report['Title']) self.assertEqual(self.ui.report['ProcInfo1'], 'my hostname') self.assertEqual(self.ui.report['ProcInfo2'], '"hostname.localnet"') self.assertEqual(self.ui.report['ProcInfo3'], 'education') finally: os.uname = orig_uname def test_run_crash_anonymity_escaping(self): '''run_crash() anonymization escapes special chars''' # inject GECOS field with regexp control chars orig_getpwuid = pwd.getpwuid orig_getuid = os.getuid def fake_getpwuid(uid): r = list(orig_getpwuid(orig_getuid())) r[4] = 'Joe (Hacker,+1 234,,' return r pwd.getpwuid = fake_getpwuid os.getuid = lambda: 1234 try: r = self._gen_test_crash(orig_getuid()) r['ProcInfo1'] = 'That was Joe (Hacker and friends' r['ProcInfo2'] = 'Call +1 234!' r['ProcInfo3'] = '(Hacker should stay' report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertEqual(self.ui.report['ProcInfo1'], 'That was User Name and friends') self.assertEqual(self.ui.report['ProcInfo2'], 'Call User Name!') self.assertEqual(self.ui.report['ProcInfo3'], '(Hacker should stay') finally: pwd.getpwuid = orig_getpwuid os.getuid = orig_getuid def test_run_crash_known(self): '''run_crash() for already known problem''' r = self._gen_test_crash() report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} # known without URL with open(report_file, 'wb') as f: r.write(f) self.ui.crashdb.known = lambda r: True self.ui.run_crash(report_file) self.assertEqual(self.ui.report['_KnownReport'], '1') self.assertEqual(self.ui.msg_severity, 'info') self.assertEqual(self.ui.opened_url, None) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} # known with URL with open(report_file, 'wb') as f: r.write(f) self.ui.crashdb.known = lambda r: 'http://myreport/1' self.ui.run_crash(report_file) self.assertEqual(self.ui.report['_KnownReport'], 'http://myreport/1') self.assertEqual(self.ui.msg_severity, 'info') self.assertEqual(self.ui.opened_url, 'http://myreport/1') def test_run_crash_private_keys(self): '''does not upload private keys to crash db''' r = self._gen_test_crash() r['_Temp'] = 'boring' # write crash report report_file = os.path.join(apport.fileutils.report_dir, 'test.crash') # report with open(report_file, 'wb') as f: r.write(f) self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crash(report_file) self.assertEqual(self.ui.opened_url, 'http://coreutils.bugs.example.com/%i' % self.ui.crashdb.latest_id()) # internal key should not be uploaded to the crash db r = self.ui.crashdb.download(self.ui.crashdb.latest_id()) self.assertTrue('SourcePackage' in r) self.assertFalse('_Temp' in r) @unittest.skipIf(logind_session is None, 'not running in logind session') def test_run_crash_older_session(self): '''run_crashes() skips crashes from older logind sessions''' latest_id_before = self.ui.crashdb.latest_id() # current crash report r = self._gen_test_crash() cur_date = r['Date'] r['Tag'] = 'cur' self.assertEqual(r['_LogindSession'], logind_session[0]) with open(os.path.join(apport.fileutils.report_dir, 'cur.crash'), 'wb') as f: r.write(f) # old crash report r['Date'] = time.asctime(time.localtime(logind_session[1] - 1)) r['Tag'] = 'old' with open(os.path.join(apport.fileutils.report_dir, 'old.crash'), 'wb') as f: r.write(f) # old crash report without session del r['_LogindSession'] r['Tag'] = 'oldnosession' with open(os.path.join(apport.fileutils.report_dir, 'oldnosession.crash'), 'wb') as f: r.write(f) del r self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.run_crashes() if os.getuid() != 0: # as user: should have reported two reports only self.assertEqual(self.ui.crashdb.latest_id(), latest_id_before + 2) r1 = self.ui.crashdb.download(self.ui.crashdb.latest_id()) r2 = self.ui.crashdb.download(self.ui.crashdb.latest_id() - 1) if r1['Tag'] == 'cur': self.assertEqual(r1['Date'], cur_date) self.assertEqual(r2['Tag'], 'oldnosession') else: self.assertEqual(r2['Date'], cur_date) self.assertEqual(r1['Tag'], 'oldnosession') self.assertEqual(r2['Tag'], 'cur') else: # as root: should have reported all reports self.assertEqual(self.ui.crashdb.latest_id(), latest_id_before + 3) def test_run_update_report_nonexisting_package_from_bug(self): '''run_update_report() on a nonexisting package (from bug)''' sys.argv = ['ui-test', '-u', '1'] self.ui = TestSuiteUserInterface() self.assertEqual(self.ui.run_argv(), False) self.assertTrue('No additional information collected.' in self.ui.msg_text) self.assertFalse(self.ui.present_details_shown) def test_run_update_report_nonexisting_package_cli(self): '''run_update_report() on a nonexisting package (CLI argument)''' sys.argv = ['ui-test', '-u', '1', '-p', 'bar'] self.ui = TestSuiteUserInterface() self.assertEqual(self.ui.run_argv(), False) self.assertTrue('No additional information collected.' in self.ui.msg_text) self.assertFalse(self.ui.present_details_shown) def test_run_update_report_existing_package_from_bug(self): '''run_update_report() on an existing package (from bug)''' sys.argv = ['ui-test', '-u', '1'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.crashdb.download(1)['SourcePackage'] = 'bash' self.ui.crashdb.download(1)['Package'] = 'bash' self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) self.assertTrue(self.ui.present_details_shown) self.assertTrue(self.ui.ic_progress_pulses > 0) self.assertTrue(self.ui.report['Package'].startswith('bash ')) self.assertTrue('Dependencies' in self.ui.report.keys()) self.assertTrue('ProcEnviron' in self.ui.report.keys()) def test_run_update_report_existing_package_cli_tags(self): '''run_update_report() on an existing package (CLI argument) with extra tag''' sys.argv = ['ui-test', '-u', '1', '-p', 'bash', '--tag', 'foo'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) self.assertTrue(self.ui.present_details_shown) self.assertTrue(self.ui.ic_progress_pulses > 0) self.assertTrue(self.ui.report['Package'].startswith('bash ')) self.assertTrue('Dependencies' in self.ui.report.keys()) self.assertTrue('ProcEnviron' in self.ui.report.keys()) self.assertTrue('foo' in self.ui.report['Tags']) def test_run_update_report_existing_package_cli_cmdname(self): '''run_update_report() on an existing package (-collect program)''' sys.argv = ['apport-collect', '-p', 'bash', '1'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) self.assertTrue(self.ui.present_details_shown) self.assertTrue(self.ui.ic_progress_pulses > 0) self.assertTrue(self.ui.report['Package'].startswith('bash ')) self.assertTrue('Dependencies' in self.ui.report.keys()) self.assertTrue('ProcEnviron' in self.ui.report.keys()) def test_run_update_report_noninstalled_but_hook(self): '''run_update_report() on an uninstalled package with a source hook''' sys.argv = ['ui-test', '-u', '1'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} with open(os.path.join(self.hookdir, 'source_foo.py'), 'w') as f: f.write('def add_info(r, ui):\n r["MachineType"]="Laptop"\n') self.assertEqual(self.ui.run_argv(), True, self.ui.report) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) self.assertTrue(self.ui.present_details_shown) self.assertTrue(self.ui.ic_progress_pulses > 0) self.assertEqual(self.ui.report['Package'], 'foo (not installed)') self.assertEqual(self.ui.report['MachineType'], 'Laptop') self.assertTrue('ProcEnviron' in self.ui.report.keys()) def test_run_update_report_different_binary_source(self): '''run_update_report() on a source package which does not have a binary of the same name''' # this test assumes that the source package name is not an # installed binary package source_pkg = "shadow" self.assertRaises(ValueError, apport.packaging.get_version, source_pkg) sys.argv = ['ui-test', '-p', source_pkg, '-u', '1'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} with open(os.path.join(self.hookdir, 'source_%s.py' % source_pkg), 'w') as f: f.write('def add_info(r, ui):\n r["MachineType"]="Laptop"\n') self.assertEqual(self.ui.run_argv(), True, self.ui.report) self.assertEqual(self.ui.msg_severity, None, self.ui.msg_text) self.assertEqual(self.ui.msg_title, None) self.assertEqual(self.ui.opened_url, None) self.assertTrue(self.ui.present_details_shown) self.assertTrue(self.ui.ic_progress_pulses > 0) self.assertEqual(self.ui.report['Package'], '%s (not installed)' % source_pkg) self.assertEqual(self.ui.report['MachineType'], 'Laptop') self.assertTrue('ProcEnviron' in self.ui.report.keys()) def _run_hook(self, code): f = open(os.path.join(self.hookdir, 'coreutils.py'), 'w') f.write('def add_info(report, ui):\n%s\n' % '\n'.join([' ' + line for line in code.splitlines()])) f.close() self.ui.options.package = 'coreutils' self.ui.run_report_bug() def test_interactive_hooks_information(self): '''interactive hooks: HookUI.information()''' self.ui.present_details_response = {'report': False, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self._run_hook('''report['begin'] = '1' ui.information('InfoText') report['end'] = '1' ''') self.assertEqual(self.ui.report['begin'], '1') self.assertEqual(self.ui.report['end'], '1') self.assertEqual(self.ui.msg_text, 'InfoText') def test_interactive_hooks_yesno(self): '''interactive hooks: HookUI.yesno()''' self.ui.present_details_response = {'report': False, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.question_yesno_response = True self._run_hook('''report['begin'] = '1' report['answer'] = str(ui.yesno('YesNo?')) report['end'] = '1' ''') self.assertEqual(self.ui.report['begin'], '1') self.assertEqual(self.ui.report['end'], '1') self.assertEqual(self.ui.msg_text, 'YesNo?') self.assertEqual(self.ui.report['answer'], 'True') self.ui.question_yesno_response = False self.ui.run_report_bug() self.assertEqual(self.ui.report['answer'], 'False') self.assertEqual(self.ui.report['end'], '1') self.ui.question_yesno_response = None self.ui.run_report_bug() self.assertEqual(self.ui.report['answer'], 'None') self.assertEqual(self.ui.report['end'], '1') def test_interactive_hooks_file(self): '''interactive hooks: HookUI.file()''' self.ui.present_details_response = {'report': False, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.question_file_response = '/etc/fstab' self._run_hook('''report['begin'] = '1' report['answer'] = str(ui.file('YourFile?')) report['end'] = '1' ''') self.assertEqual(self.ui.report['begin'], '1') self.assertEqual(self.ui.report['end'], '1') self.assertEqual(self.ui.msg_text, 'YourFile?') self.assertEqual(self.ui.report['answer'], '/etc/fstab') self.ui.question_file_response = None self.ui.run_report_bug() self.assertEqual(self.ui.report['answer'], 'None') self.assertEqual(self.ui.report['end'], '1') def test_interactive_hooks_choices(self): '''interactive hooks: HookUI.choice()''' self.ui.present_details_response = {'report': False, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.question_choice_response = [1] self._run_hook('''report['begin'] = '1' report['answer'] = str(ui.choice('YourChoice?', ['foo', 'bar'])) report['end'] = '1' ''') self.assertEqual(self.ui.report['begin'], '1') self.assertEqual(self.ui.report['end'], '1') self.assertEqual(self.ui.msg_text, 'YourChoice?') self.assertEqual(self.ui.report['answer'], '[1]') self.ui.question_choice_response = None self.ui.run_report_bug() self.assertEqual(self.ui.report['answer'], 'None') self.assertEqual(self.ui.report['end'], '1') def test_interactive_hooks_cancel(self): '''interactive hooks: user cancels''' self.assertRaises(SystemExit, self._run_hook, '''report['begin'] = '1' raise StopIteration report['end'] = '1' ''') def test_run_symptom(self): '''run_symptom()''' # unknown symptom sys.argv = ['ui-test', '-s', 'foobar'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) self.assertTrue('foobar" is not known' in self.ui.msg_text) self.assertEqual(self.ui.msg_severity, 'error') # does not determine package f = open(os.path.join(apport.ui.symptom_script_dir, 'nopkg.py'), 'w') f.write('def run(report, ui):\n pass\n') f.close() orig_stderr = sys.stderr sys.argv = ['ui-test', '-s', 'nopkg'] self.ui = TestSuiteUserInterface() sys.stderr = StringIO() self.assertRaises(SystemExit, self.ui.run_argv) err = sys.stderr.getvalue() sys.stderr = orig_stderr self.assertTrue('did not determine the affected package' in err) # does not define run() f = open(os.path.join(apport.ui.symptom_script_dir, 'norun.py'), 'w') f.write('def something(x, y):\n return 1\n') f.close() sys.argv = ['ui-test', '-s', 'norun'] self.ui = TestSuiteUserInterface() sys.stderr = StringIO() self.assertRaises(SystemExit, self.ui.run_argv) err = sys.stderr.getvalue() sys.stderr = orig_stderr self.assertTrue('norun.py crashed:' in err) # crashing script f = open(os.path.join(apport.ui.symptom_script_dir, 'crash.py'), 'w') f.write('def run(report, ui):\n return 1/0\n') f.close() sys.argv = ['ui-test', '-s', 'crash'] self.ui = TestSuiteUserInterface() sys.stderr = StringIO() self.assertRaises(SystemExit, self.ui.run_argv) err = sys.stderr.getvalue() sys.stderr = orig_stderr self.assertTrue('crash.py crashed:' in err) self.assertTrue('ZeroDivisionError:' in err) # working noninteractive script f = open(os.path.join(apport.ui.symptom_script_dir, 'itching.py'), 'w') f.write('def run(report, ui):\n report["itch"] = "scratch"\n return "bash"\n') f.close() sys.argv = ['ui-test', '-s', 'itching'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_text, None) self.assertEqual(self.ui.msg_severity, None) self.assertTrue(self.ui.present_details_shown) self.assertEqual(self.ui.report['itch'], 'scratch') self.assertTrue('DistroRelease' in self.ui.report) self.assertEqual(self.ui.report['SourcePackage'], 'bash') self.assertTrue(self.ui.report['Package'].startswith('bash ')) self.assertEqual(self.ui.report['ProblemType'], 'Bug') # working noninteractive script with extra tag sys.argv = ['ui-test', '--tag', 'foo', '-s', 'itching'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_text, None) self.assertEqual(self.ui.msg_severity, None) self.assertTrue(self.ui.present_details_shown) self.assertEqual(self.ui.report['itch'], 'scratch') self.assertTrue('foo' in self.ui.report['Tags']) # working interactive script f = open(os.path.join(apport.ui.symptom_script_dir, 'itching.py'), 'w') f.write('''def run(report, ui): report['itch'] = 'slap' report['q'] = str(ui.yesno('do you?')) return 'bash' ''') f.close() sys.argv = ['ui-test', '-s', 'itching'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.question_yesno_response = True self.assertEqual(self.ui.run_argv(), True) self.assertTrue(self.ui.present_details_shown) self.assertEqual(self.ui.msg_text, 'do you?') self.assertEqual(self.ui.report['itch'], 'slap') self.assertTrue('DistroRelease' in self.ui.report) self.assertEqual(self.ui.report['SourcePackage'], 'bash') self.assertTrue(self.ui.report['Package'].startswith('bash ')) self.assertEqual(self.ui.report['ProblemType'], 'Bug') self.assertEqual(self.ui.report['q'], 'True') def test_run_report_bug_list_symptoms(self): '''run_report_bug() without specifying arguments and available symptoms''' f = open(os.path.join(apport.ui.symptom_script_dir, 'foo.py'), 'w') f.write('''description = 'foo does not work' def run(report, ui): return 'bash' ''') f.close() f = open(os.path.join(apport.ui.symptom_script_dir, 'bar.py'), 'w') f.write('def run(report, ui):\n return "coreutils"\n') f.close() sys.argv = ['ui-test', '-f'] self.ui = TestSuiteUserInterface() self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.ui.question_choice_response = None self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_severity, None) self.assertTrue('kind of problem' in self.ui.msg_text) self.assertEqual(set(self.ui.msg_choices), set(['bar', 'foo does not work', 'Other problem'])) # cancelled self.assertEqual(self.ui.ic_progress_pulses, 0) self.assertEqual(self.ui.report, None) self.assertFalse(self.ui.present_details_shown) # now, choose foo -> bash report self.ui.question_choice_response = [self.ui.msg_choices.index('foo does not work')] self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_severity, None) self.assertTrue(self.ui.ic_progress_pulses > 0) self.assertTrue(self.ui.present_details_shown) self.assertTrue(self.ui.report['Package'].startswith('bash')) def test_parse_argv_single_arg(self): '''parse_args() option inference for a single argument''' def _chk(program_name, arg, expected_opts): sys.argv = [program_name] if arg: sys.argv.append(arg) orig_stderr = sys.stderr sys.stderr = open('/dev/null', 'w') try: ui = apport.ui.UserInterface() finally: sys.stderr.close() sys.stderr = orig_stderr expected_opts['version'] = None self.assertEqual(ui.args, []) self.assertEqual(ui.options, expected_opts) # no arguments -> show pending crashes _chk('apport-gtk', None, {'filebug': False, 'package': None, 'pid': None, 'crash_file': None, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # updating report not allowed without args self.assertRaises(SystemExit, _chk, 'apport-collect', None, {}) # package _chk('apport-kde', 'coreutils', {'filebug': True, 'package': 'coreutils', 'pid': None, 'crash_file': None, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # symptom is preferred over package f = open(os.path.join(apport.ui.symptom_script_dir, 'coreutils.py'), 'w') f.write('''description = 'foo does not work' def run(report, ui): return 'bash' ''') f.close() _chk('apport-cli', 'coreutils', {'filebug': True, 'package': None, 'pid': None, 'crash_file': None, 'symptom': 'coreutils', 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # PID _chk('apport-cli', '1234', {'filebug': True, 'package': None, 'pid': '1234', 'crash_file': None, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # .crash/.apport files; check correct handling of spaces for suffix in ('.crash', '.apport'): _chk('apport-cli', '/tmp/f oo' + suffix, {'filebug': False, 'package': None, 'pid': None, 'crash_file': '/tmp/f oo' + suffix, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # executable _chk('apport-cli', '/usr/bin/tail', {'filebug': True, 'package': 'coreutils', 'pid': None, 'crash_file': None, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # update existing report _chk('apport-collect', '1234', {'filebug': False, 'package': None, 'crash_file': None, 'symptom': None, 'update_report': 1234, 'tag': [], 'hanging': False}) _chk('apport-update-bug', '1234', {'filebug': False, 'package': None, 'crash_file': None, 'symptom': None, 'update_report': 1234, 'tag': [], 'hanging': False}) def test_parse_argv_apport_bug(self): '''parse_args() option inference when invoked as *-bug''' def _chk(args, expected_opts): sys.argv = ['apport-bug'] + args orig_stderr = sys.stderr sys.stderr = open('/dev/null', 'w') try: ui = apport.ui.UserInterface() finally: sys.stderr.close() sys.stderr = orig_stderr expected_opts['version'] = None self.assertEqual(ui.args, []) self.assertEqual(ui.options, expected_opts) # # no arguments: default to 'ask for symptom' bug mode # _chk([], {'filebug': True, 'package': None, 'pid': None, 'crash_file': None, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # # single arguments # # package _chk(['coreutils'], {'filebug': True, 'package': 'coreutils', 'pid': None, 'crash_file': None, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # symptom (preferred over package) f = open(os.path.join(apport.ui.symptom_script_dir, 'coreutils.py'), 'w') f.write('''description = 'foo does not work' def run(report, ui): return 'bash' ''') f.close() _chk(['coreutils'], {'filebug': True, 'package': None, 'pid': None, 'crash_file': None, 'symptom': 'coreutils', 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) os.unlink(os.path.join(apport.ui.symptom_script_dir, 'coreutils.py')) # PID _chk(['1234'], {'filebug': True, 'package': None, 'pid': '1234', 'crash_file': None, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # .crash/.apport files; check correct handling of spaces for suffix in ('.crash', '.apport'): _chk(['/tmp/f oo' + suffix], {'filebug': False, 'package': None, 'pid': None, 'crash_file': '/tmp/f oo' + suffix, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # executable name _chk(['/usr/bin/tail'], {'filebug': True, 'package': 'coreutils', 'pid': None, 'crash_file': None, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': [], 'hanging': False}) # # supported options # # --save _chk(['--save', 'foo.apport', 'coreutils'], {'filebug': True, 'package': 'coreutils', 'pid': None, 'crash_file': None, 'symptom': None, 'update_report': None, 'save': 'foo.apport', 'window': False, 'tag': [], 'hanging': False}) # --tag _chk(['--tag', 'foo', 'coreutils'], {'filebug': True, 'package': 'coreutils', 'pid': None, 'crash_file': None, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': ['foo'], 'hanging': False}) _chk(['--tag', 'foo', '--tag', 'bar', 'coreutils'], {'filebug': True, 'package': 'coreutils', 'pid': None, 'crash_file': None, 'symptom': None, 'update_report': None, 'save': None, 'window': False, 'tag': ['foo', 'bar'], 'hanging': False}) # mutually exclusive options self.assertRaises(SystemExit, _chk, ['-c', '/tmp/foo.report', '-u', '1234'], {}) def test_can_examine_locally_crash(self): '''can_examine_locally() for a crash report''' self.ui.load_report(self.report_file.name) orig_path = os.environ['PATH'] orig_fn = self.ui.ui_run_terminal try: self.ui.ui_run_terminal = lambda command: True os.environ['PATH'] = '' self.assertEqual(self.ui.can_examine_locally(), False) src_bindir = os.path.join( os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'bin') # this will only work for running the tests in the source tree if os.access(os.path.join(src_bindir, 'apport-retrace'), os.X_OK): os.environ['PATH'] += src_bindir + ':' + orig_path self.assertEqual(self.ui.can_examine_locally(), True) else: # if we run tests in installed system, we just check that # it doesn't crash self.assertTrue(self.ui.can_examine_locally() in [False, True]) self.ui.ui_run_terminal = lambda command: False self.assertEqual(self.ui.can_examine_locally(), False) # does not crash on NotImplementedError self.ui.ui_run_terminal = orig_fn self.assertEqual(self.ui.can_examine_locally(), False) finally: os.environ['PATH'] = orig_path self.ui.ui_run_terminal = orig_fn def test_can_examine_locally_nocrash(self): '''can_examine_locally() for a non-crash report''' self.ui.load_report(self.report_file.name) del self.ui.report['CoreDump'] orig_fn = self.ui.ui_run_terminal try: self.ui.ui_run_terminal = lambda command: True self.assertEqual(self.ui.can_examine_locally(), False) finally: self.ui.ui_run_terminal = orig_fn def test_db_no_accept(self): '''crash database does not accept report''' # FIXME: This behaviour is not really correct, but necessary as long as # we only support a single crashdb and have whoopsie hardcoded # (see LP#957177) latest_id_before = self.ui.crashdb.latest_id() sys.argv = ['ui-test', '-f', '-p', 'bash'] self.ui = TestSuiteUserInterface() # Pretend it does not accept report self.ui.crashdb.accepts = lambda r: False self.ui.present_details_response = {'report': True, 'blacklist': False, 'examine': False, 'restart': False, 'remember': False} self.assertEqual(self.ui.run_argv(), True) self.assertEqual(self.ui.msg_severity, None) self.assertEqual(self.ui.msg_title, None) self.assertTrue(self.ui.present_details_shown) # data was collected for whoopsie self.assertEqual(self.ui.report['SourcePackage'], 'bash') self.assertTrue('Dependencies' in self.ui.report.keys()) self.assertTrue('ProcEnviron' in self.ui.report.keys()) self.assertEqual(self.ui.report['ProblemType'], 'Bug') # no upload happend self.assertEqual(self.ui.opened_url, None) self.assertEqual(self.ui.upload_progress_pulses, 0) self.assertEqual(self.ui.crashdb.latest_id(), latest_id_before) def test_get_desktop_entry(self): '''parsing of .desktop files''' desktop_file = tempfile.NamedTemporaryFile() desktop_file.write(b'''[Desktop Entry] Name=gtranslate GenericName=Translator GenericName[de]=\xc3\x9cbersetzer Exec=gedit %U Categories=GNOME;GTK;Utility;TextEditor; ''') desktop_file.flush() self.report['DesktopFile'] = desktop_file.name self.ui.report = self.report info = self.ui.get_desktop_entry() if sys.version_info.major == 2: exp_genericname = b'\xc3\x9cbersetzer' else: exp_genericname = b'\xc3\x9cbersetzer'.decode('UTF-8') self.assertEqual(info, {'genericname': 'Translator', 'categories': 'GNOME;GTK;Utility;TextEditor;', 'name': 'gtranslate', 'genericname[de]': exp_genericname, 'exec': 'gedit %U'}) def test_get_desktop_entry_broken(self): '''parsing of broken .desktop files''' # duplicate key desktop_file = tempfile.NamedTemporaryFile() desktop_file.write(b'''[Desktop Entry] Name=gtranslate GenericName=Translator GenericName[de]=\xc3\x9cbersetzer Exec=gedit %U Keywords=foo;bar; Categories=GNOME;GTK;Utility;TextEditor; Keywords=baz ''') desktop_file.flush() self.report['DesktopFile'] = desktop_file.name self.ui.report = self.report info = self.ui.get_desktop_entry() if sys.version_info.major == 2: exp_genericname = b'\xc3\x9cbersetzer' else: exp_genericname = b'\xc3\x9cbersetzer'.decode('UTF-8') self.assertEqual(info, {'genericname': 'Translator', 'categories': 'GNOME;GTK;Utility;TextEditor;', 'name': 'gtranslate', 'genericname[de]': exp_genericname, 'keywords': 'baz', 'exec': 'gedit %U'}) # no header desktop_file.seek(0) desktop_file.write('''Name=gtranslate GenericName=Translator Exec=gedit %U '''.encode('UTF-8')) desktop_file.flush() self.assertEqual(self.ui.get_desktop_entry(), None) # syntax error desktop_file.seek(0) desktop_file.write('''[Desktop Entry] Name gtranslate GenericName=Translator Exec=gedit %U '''.encode('UTF-8')) desktop_file.flush() self.assertEqual(self.ui.get_desktop_entry(), None) def test_wait_for_pid(self): # fork a test process pid = os.fork() if pid == 0: os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stdout.fileno()) os.execv('/usr/bin/yes', ['yes']) assert False, 'Could not execute /usr/bin/yes' time.sleep(0.5) os.kill(pid, signal.SIGKILL) os.waitpid(pid, 0) self.ui.wait_for_pid(pid) @unittest.mock.patch("os.getgid", unittest.mock.MagicMock(return_value=0)) @unittest.mock.patch("os.getuid", unittest.mock.MagicMock(return_value=0)) @unittest.mock.patch.dict( "os.environ", {"SUDO_UID": str(os.getuid())}, clear=True ) def test_run_as_real_user(self) -> None: # pylint: disable=no-self-use """Test run_as_real_user() with SUDO_UID set.""" with unittest.mock.patch("subprocess.run") as run_mock: run_as_real_user(["/bin/true"]) run_mock.assert_called_once_with( ["sudo", "-H", "-u", "#" + os.environ["SUDO_UID"], "/bin/true"], check=False, ) @unittest.mock.patch.dict("os.environ", {}, clear=True) def test_run_as_real_user_no_sudo(self) -> None: # pylint: disable=no-self-use """Test run_as_real_user() without sudo env variables.""" with unittest.mock.patch("subprocess.run") as run_mock: run_as_real_user(["/bin/true"]) run_mock.assert_called_once_with(["/bin/true"], check=False) @unittest.mock.patch("os.getgid", unittest.mock.MagicMock(return_value=37)) @unittest.mock.patch("os.getuid", unittest.mock.MagicMock(return_value=37)) @unittest.mock.patch.dict("os.environ", {"SUDO_UID": "0"}) def test_run_as_real_user_non_root(self) -> None: # pylint: disable=no-self-use """Test run_as_real_user() as non-root and SUDO_UID set.""" with unittest.mock.patch("subprocess.run") as run_mock: run_as_real_user(["/bin/true"]) run_mock.assert_called_once_with(["/bin/true"], check=False) unittest.main() ��������������apport-2.20.11/test/test_ui_gtk.py������������������������������������������������������������������0000664�0000000�0000000�00000136343�14416106601�013735� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# coding: UTF-8 '''GTK Apport user interface tests.''' # Copyright (C) 2012 Canonical Ltd. # Author: Evan Dandrea <evan.dandrea@canonical.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import unittest import tempfile import sys import os import apport import shutil import subprocess import gi gi.require_version('Gtk', '3.0') from gi.repository import GLib, Gtk from importlib.machinery import SourceFileLoader from apport import unicode_gettext as _ from unittest.mock import patch import apport.crashdb_impl.memory GLib.log_set_always_fatal(GLib.LogLevelFlags.LEVEL_WARNING | GLib.LogLevelFlags.LEVEL_CRITICAL) if os.environ.get('APPORT_TEST_LOCAL'): apport_gtk_path = 'gtk/apport-gtk' kernel_oops_path = 'data/kernel_oops' else: apport_gtk_path = os.path.join(os.environ.get('APPORT_DATA_DIR', '/usr/share/apport'), 'apport-gtk') kernel_oops_path = os.path.join(os.environ.get('APPORT_DATA_DIR', '/usr/share/apport'), 'kernel_oops') GTKUserInterface = SourceFileLoader('', apport_gtk_path).load_module().GTKUserInterface class T(unittest.TestCase): @classmethod def setUpClass(klass): r = apport.Report() r.add_os_info() klass.distro = r['DistroRelease'].split()[0] def setUp(self): self.report_dir = tempfile.mkdtemp() apport.fileutils.report_dir = self.report_dir os.environ['APPORT_REPORT_DIR'] = self.report_dir # do not cause eternal hangs because of error dialog boxes os.environ['APPORT_DISABLE_DISTRO_CHECK'] = '1' saved = sys.argv[0] # Work around GTKUserInterface using basename to find the GtkBuilder UI # file. sys.argv[0] = apport_gtk_path self.app = GTKUserInterface() sys.argv[0] = saved # use in-memory crashdb self.app.crashdb = apport.crashdb_impl.memory.CrashDatabase(None, {}) # test report self.app.report_file = os.path.join(self.report_dir, 'bash.crash') self.app.report = apport.Report() self.app.report['ExecutablePath'] = '/bin/bash' self.app.report['Signal'] = '11' self.app.report['CoreDump'] = b'\x01\x02' self.app.report['DistroRelease'] = self.distro with open(self.app.report_file, 'wb') as f: self.app.report.write(f) # disable package hooks, as they might ask for sudo password and other # interactive bits; allow tests to install their own hooks self.hook_dir = tempfile.mkdtemp() apport.report._hook_dir = self.hook_dir apport.report._common_hook_dir = self.hook_dir def tearDown(self): shutil.rmtree(self.report_dir) shutil.rmtree(self.hook_dir) def test_close_button(self): '''Clicking the close button on the window does not report the crash.''' def c(*args): self.app.w('dialog_crash_new').destroy() GLib.idle_add(c) result = self.app.ui_present_report_details(True) self.assertFalse(result['report']) def test_kernel_crash_layout(self): ''' +-----------------------------------------------------------------+ | [ logo] YourDistro has experienced an internal error. | | Send problem report to the developers? | | | | [ ] Remember this in future | | | | [ Show Details ] [ Don't send ] [ Send ] | +-----------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'KernelCrash' GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('dialog_crash_new').get_title(), self.distro) self.assertEqual(self.app.w('title_label').get_text(), _('Sorry, %s has experienced an internal error.') % self.distro) self.assertTrue(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertTrue(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertTrue(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) self.assertFalse(self.app.w('subtitle_label').get_property('visible')) self.assertFalse(self.app.w('ignore_future_problems').get_property('visible')) def test_package_crash_layout(self): ''' +-----------------------------------------------------------------+ | [ error ] Sorry, a problem occurred while installing software. | | Send problem report to the developers? | | Package: apport 1.2.3~0ubuntu1 | | | | [ ] Remember this in future | | | | [ Show Details ] [ Don't send ] [ Send ] | +-----------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'Package' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('dialog_crash_new').get_title(), self.distro) self.assertEqual(self.app.w('title_label').get_text(), _('Sorry, a problem occurred while installing software.')) self.assertTrue(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertTrue(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertTrue(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) self.assertTrue(self.app.w('subtitle_label').get_property('visible')) self.assertEqual(self.app.w('subtitle_label').get_text(), _('Package: apport 1.2.3~0ubuntu1')) def test_regular_crash_thread_layout(self): '''A thread of execution has failed, but the application persists.''' ''' +-----------------------------------------------------------------+ | [ logo] YourDistro has experienced an internal error. | | Send problem report to the developers? | | If you notice further problems, try restarting the | | computer. | | | | [ ] Remember this in future | | | | [ Show Details ] [ Don't send ] [ Send ] | +-----------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'Crash' self.app.report['ProcStatus'] = 'Name:\tupstart\nPid:\t1' GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) def test_regular_crash_layout(self): ''' +-----------------------------------------------------------------+ | [ apport ] The application Apport has closed unexpectedly. | | Send problem report to the developers? | | | | [ ] Remember this in future | | [ ] Ignore future problems of this program version | | | | [ Show Details ] [ Don't send ] [ Send ] | +-----------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'Crash' self.app.report['CrashCounter'] = '1' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' with tempfile.NamedTemporaryFile() as fp: fp.write(b'''[Desktop Entry] Version=1.0 Name=Apport Type=Application''') fp.flush() self.app.report['DesktopFile'] = fp.name GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('dialog_crash_new').get_title(), self.distro) self.assertEqual(self.app.w('title_label').get_text(), _('The application Apport has closed unexpectedly.')) self.assertTrue(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertTrue(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertTrue(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) # no ProcCmdline, cannot restart self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) self.assertFalse(self.app.w('subtitle_label').get_property('visible')) self.assertTrue(self.app.w('ignore_future_problems').get_property('visible')) self.assertTrue(self.app.w('ignore_future_problems').get_label().endswith( 'of this program version')) def test_regular_crash_layout_restart(self): ''' +-----------------------------------------------------------------+ | [ apport ] The application Apport has closed unexpectedly. | | Send problem report to the developers? | | | | [ ] Remember this in future | | [ ] Ignore future problems of this program version | | [X] Relaunch this application | | | | [ Show Details ] [ Don't send ] [ Send ] | +-----------------------------------------------------------------+ ''' # pretend we got called through run_crashes() which sets offer_restart self.app.offer_restart = True self.app.report['ProblemType'] = 'Crash' self.app.report['CrashCounter'] = '1' self.app.report['ProcCmdline'] = 'apport-bug apport' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' with tempfile.NamedTemporaryFile() as fp: fp.write(b'''[Desktop Entry] Version=1.0 Name=Apport Type=Application''') fp.flush() self.app.report['DesktopFile'] = fp.name GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('dialog_crash_new').get_title(), self.distro) self.assertEqual(self.app.w('title_label').get_text(), _('The application Apport has closed unexpectedly.')) self.assertTrue(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertTrue(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertTrue(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) self.assertFalse(self.app.w('subtitle_label').get_property('visible')) self.assertTrue(self.app.w('ignore_future_problems').get_property('visible')) self.assertTrue(self.app.w('ignore_future_problems').get_label().endswith( 'of this program version')) self.assertTrue(self.app.w('relaunch_app').get_property('visible')) self.assertTrue(self.app.w('relaunch_app').get_active()) def test_regular_crash_layout_norestart(self): ''' +-----------------------------------------------------------------+ | [ apport ] The application Apport has closed unexpectedly. | | Send problem report to the developers? | | | | [ ] Remember this in future | | [ ] Ignore future problems of this program version. | | | | [ Show Details ] [ Don't send ] [ Send ] | +-----------------------------------------------------------------+ ''' # pretend we did not get called through run_crashes(), thus no offer_restart self.app.report['ProblemType'] = 'Crash' self.app.report['CrashCounter'] = '1' self.app.report['ProcCmdline'] = 'apport-bug apport' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' with tempfile.NamedTemporaryFile() as fp: fp.write(b'''[Desktop Entry] Version=1.0 Name=Apport Type=Application''') fp.flush() self.app.report['DesktopFile'] = fp.name GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('dialog_crash_new').get_title(), self.distro) self.assertEqual(self.app.w('title_label').get_text(), _('The application Apport has closed unexpectedly.')) self.assertTrue(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertTrue(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertTrue(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) def test_hang_layout(self): ''' +-----------------------------------------------------------------+ | [ apport ] The application Apport has stopped responding. | | Send problem report to the developers? | | You can wait to see if it wakes up, or close, or | | relaunch it. | | | | [ ] Remember this in future | | [X] Relaunch this application | | | | [ Show Details ] [ Don't send ] [ Send ] | +-----------------------------------------------------------------+ ''' # pretend we got called through run_crashes() which sets offer_restart self.app.offer_restart = True self.app.report['ProblemType'] = 'Hang' self.app.report['ProcCmdline'] = 'apport-bug apport' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' with tempfile.NamedTemporaryFile() as fp: fp.write(b'''[Desktop Entry] Version=1.0 Name=Apport Type=Application''') fp.flush() self.app.report['DesktopFile'] = fp.name GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('dialog_crash_new').get_title(), self.distro) self.assertEqual(self.app.w('title_label').get_text(), _('The application Apport has stopped responding.')) self.assertEqual(self.app.w('subtitle_label').get_text(), _('You can wait to see if it wakes up, or close or ' 'relaunch it.')) self.assertTrue(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertTrue(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertTrue(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) self.assertTrue(self.app.w('subtitle_label').get_property('visible')) self.assertFalse(self.app.w('ignore_future_problems').get_property('visible')) def test_system_crash_layout(self): ''' +---------------------------------------------------------------+ | [ logo ] Sorry, YourDistro has experienced an internal error. | | Send problem report to the developers? | | If you notice further problems, try restarting the | | computer | | | | [ ] Remember this in future | | [ ] Ignore future problems of this type. | | | | [ Show Details ] [ Don't send ] [ Send ] | +---------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'Crash' self.app.report['CrashCounter'] = '1' self.app.report['Package'] = 'bash 5' GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('dialog_crash_new').get_title(), self.distro) self.assertEqual(self.app.w('title_label').get_text(), _('Sorry, %s has experienced an internal error.') % self.distro) self.assertEqual(self.app.w('subtitle_label').get_text(), _('If you notice further problems, try restarting the computer.')) self.assertTrue(self.app.w('subtitle_label').get_property('visible')) self.assertTrue(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertTrue(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertTrue(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) self.assertTrue(self.app.w('ignore_future_problems').get_property('visible')) self.assertTrue(self.app.w('ignore_future_problems').get_label().endswith( 'of this type')) def test_system_crash_from_console_layout(self): ''' +-------------------------------------------------------------------+ | [ ubuntu ] Sorry, the application apport has closed unexpectedly. | | Send problem report to the developers? | | If you notice further problems, try restarting the | | computer | | | | [ ] Remember this in future | | | | [ Show Details ] [ Don't send ] [ Send ] | +-------------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'Crash' self.app.report['Package'] = 'bash 5' self.app.report['ProcEnviron'] = ('LANGUAGE=en_GB:en\n' 'SHELL=/bin/sh\n' 'TERM=xterm') self.app.report['ExecutablePath'] = '/usr/bin/apport' # This will be set by apport/ui.py in load_report() self.app.cur_package = 'apport' GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('dialog_crash_new').get_title(), self.distro) self.assertEqual(self.app.w('title_label').get_text(), _('Sorry, the application apport has stopped unexpectedly.')) self.assertEqual(self.app.w('subtitle_label').get_text(), _('If you notice further problems, try restarting the computer.')) self.assertTrue(self.app.w('subtitle_label').get_property('visible')) self.assertTrue(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertTrue(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertTrue(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) del self.app.report['ExecutablePath'] GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('title_label').get_text(), _('Sorry, apport has closed unexpectedly.')) # no crash counter self.assertFalse(self.app.w('ignore_future_problems').get_property('visible')) @patch.object(GTKUserInterface, 'can_examine_locally') def test_examine_button(self, *args): ''' +---------------------------------------------------------------------+ | [ apport ] The application Apport has closed unexpectedly. | | Send problem report to the developers? | | | | [ ] Remember this in future | | | | [ Show Details ] [ Examine locally ] [ Don't send ] [ Send ] | +---------------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'Crash' self.app.report['Package'] = 'bash 5' GLib.idle_add(Gtk.main_quit) self.app.can_examine_locally.return_value = False self.app.ui_present_report_details(True) self.assertFalse(self.app.w('examine').get_property('visible')) GLib.idle_add(self.app.w('examine').clicked) self.app.can_examine_locally.return_value = True result = self.app.ui_present_report_details(True) self.assertTrue(self.app.w('examine').get_property('visible')) self.assertTrue(result['examine']) def test_apport_bug_package_layout(self): ''' +-------------------------------------------------------------------+ | [ error ] Send problem report to the developers? | | | | +----------------------------------------------------+ | | | |> ApportVersion | | | | ... | | | +----------------------------------------------------+ | | | | [ Don't send ] [ Send ] | +-------------------------------------------------------------------+ ''' self.app.report_file = None GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('title_label').get_text(), _('Send problem report to the developers?')) self.assertFalse(self.app.w('subtitle_label').get_property('visible')) self.assertFalse(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertFalse(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertFalse(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) self.assertTrue(self.app.w('details_scrolledwindow').get_property('visible')) self.assertTrue(self.app.w('dialog_crash_new').get_resizable()) def test_apport_bug_package_layout_load_file(self): '''bug layout from a loaded report''' self.app.report_file = '/tmp/foo.apport' self.app.report = apport.Report('Bug') self.app.report['Package'] = 'libfoo1' self.app.report['SourcePackage'] = 'foo' GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('title_label').get_text(), _('Send problem report to the developers?')) self.assertFalse(self.app.w('subtitle_label').get_property('visible')) self.assertFalse(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertFalse(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertFalse(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) self.assertTrue(self.app.w('dont_send_button').get_property('visible')) self.assertTrue(self.app.w('details_scrolledwindow').get_property('visible')) self.assertTrue(self.app.w('dialog_crash_new').get_resizable()) def test_recoverable_crash_layout(self): ''' +-----------------------------------------------------------------+ | [ logo ] The application Foo has experienced an internal error. | | Send problem report to the developers? | | Developer-specified error text. | | | | [ ] Remember this in future | | | | [ Show Details ] [ Don't send ] [ Send ] | +-----------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'RecoverableProblem' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' self.app.report['DialogBody'] = 'Some developer-specified error text.' with tempfile.NamedTemporaryFile() as fp: fp.write(b'''[Desktop Entry] Version=1.0 Name=Apport Type=Application''') fp.flush() self.app.report['DesktopFile'] = fp.name GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.w('dialog_crash_new').get_title(), self.distro) msg = 'The application Apport has experienced an internal error.' self.assertEqual(self.app.w('title_label').get_text(), msg) msg = 'Some developer-specified error text.' self.assertEqual(self.app.w('subtitle_label').get_text(), msg) self.assertTrue(self.app.w('subtitle_label').get_property('visible')) self.assertTrue(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertTrue(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) self.assertTrue(self.app.w('show_details').get_property('visible')) self.assertTrue(self.app.w('continue_button').get_property('visible')) self.assertEqual(self.app.w('continue_button').get_label(), _('Send')) def test_administrator_disabled_reporting(self): GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(False) self.assertFalse(self.app.w('send_problem_notice_label').get_property('visible')) remember_send_error_report = self.app.w('remember_send_report_choice') self.assertFalse(remember_send_error_report.get_property('visible')) self.assertFalse(remember_send_error_report.get_active()) @patch.object(GTKUserInterface, 'open_url') @patch.object(GTKUserInterface, 'ui_start_upload_progress') @patch.object(GTKUserInterface, 'ui_stop_upload_progress') def test_crash_nodetails(self, *args): '''Crash report without showing details''' def cont(*args): if not self.app.w('continue_button').get_visible(): return True self.app.w('continue_button').clicked() return False GLib.timeout_add_seconds(60, cont) info_collection_window = self.app.w("window_information_collection") with patch.object( info_collection_window, "show", wraps=info_collection_window.show ) as info_collection_window_show_mock: self.app.run_crash(self.app.report_file) # we should have reported one crash self.assertEqual(self.app.crashdb.latest_id(), 0) r = self.app.crashdb.download(0) self.assertEqual(r['ProblemType'], 'Crash') self.assertEqual(r['ExecutablePath'], '/bin/bash') # should show a progress bar for info collection info_collection_window_show_mock.assert_called_once_with() # data was collected self.assertTrue(r['Package'].startswith('bash ')) self.assertTrue('libc' in r['Dependencies']) self.assertTrue('Stacktrace' in r) # upload dialog shown self.assertEqual(self.app.ui_start_upload_progress.call_count, 1) self.assertEqual(self.app.ui_stop_upload_progress.call_count, 1) # URL was opened self.assertEqual(self.app.open_url.call_count, 1) @patch.object(GTKUserInterface, 'open_url') @patch.object(GTKUserInterface, 'ui_start_upload_progress') @patch.object(GTKUserInterface, 'ui_stop_upload_progress') def test_crash_details(self, *args): '''Crash report with showing details''' def show_details(*args): if not self.app.w('show_details').get_visible(): return True self.app.w('show_details').clicked() GLib.timeout_add(200, cont) return False def cont(*args): # wait until data collection is done and tree filled if self.app.tree_model.get_iter_first() is None: return True self.assertTrue(self.app.w('continue_button').get_visible()) self.app.w('continue_button').clicked() return False GLib.timeout_add(200, show_details) info_collection_window = self.app.w("window_information_collection") with patch.object( info_collection_window, "show", wraps=info_collection_window.show ) as info_collection_window_show_mock: self.app.run_crash(self.app.report_file) # we should have reported one crash self.assertEqual(self.app.crashdb.latest_id(), 0) r = self.app.crashdb.download(0) self.assertEqual(r['ProblemType'], 'Crash') self.assertEqual(r['ExecutablePath'], '/bin/bash') # we already collected details, do not show the progress dialog again info_collection_window_show_mock.assert_not_called() # data was collected self.assertTrue(r['Package'].startswith('bash ')) self.assertTrue('libc' in r['Dependencies']) self.assertTrue('Stacktrace' in r) # upload dialog shown self.assertEqual(self.app.ui_start_upload_progress.call_count, 1) self.assertEqual(self.app.ui_stop_upload_progress.call_count, 1) # URL was opened self.assertEqual(self.app.open_url.call_count, 1) @patch.object(GTKUserInterface, 'open_url') @patch.object(GTKUserInterface, 'ui_start_upload_progress') @patch.object(GTKUserInterface, 'ui_stop_upload_progress') def test_broken_crash_details(self, *args): '''Broken crash report with showing details''' self.error_title = None self.error_text = None def show_details(*args): if not self.app.w('show_details').get_visible(): return True self.app.w('show_details').clicked() GLib.timeout_add(200, cont) return False def cont(*args): # wait until data collection is done and tree filled if self.app.tree_model.get_iter_first() is None: return True self.assertTrue(self.app.w('continue_button').get_visible()) self.app.w('continue_button').clicked() GLib.timeout_add(100, ack_error) return False def ack_error(*args): # wait until error dialog gets visible if not self.app.md: return True self.error_title = self.app.md.get_title() self.error_text = self.app.md.get_property('text') self.app.md.response(0) return False # damage core dump in report file with open(self.app.report_file) as f: lines = f.readlines() lines[-1] = ' iiiiiiiiiiiiAAAA\n' with open(self.app.report_file, 'w') as f: f.write(''.join(lines)) self.app.report = None GLib.timeout_add(200, show_details) self.app.run_crash(self.app.report_file) # upload dialog not shown self.assertEqual(self.app.ui_start_upload_progress.call_count, 0) self.assertEqual(self.app.ui_stop_upload_progress.call_count, 0) # no URL was opened self.assertEqual(self.app.open_url.call_count, 0) # no crash uploaded self.assertEqual(self.app.crashdb.latest_id(), -1) # proper error message self.assertNotEqual(self.error_title, None) self.assertIn('cannot be reported', self.error_text) self.assertIn('decompressing', self.error_text) @patch.object(GTKUserInterface, 'open_url') def test_crash_noaccept(self, *args): '''Crash report with non-accepting crash DB''' def cont(*args): if not self.app.w('continue_button').get_visible(): return True self.app.w('continue_button').clicked() return False GLib.timeout_add_seconds(60, cont) self.app.crashdb.options['problem_types'] = ['bug'] info_collection_window = self.app.w("window_information_collection") with patch.object( info_collection_window, "show", wraps=info_collection_window.show ) as info_collection_window_show_mock: self.app.run_crash(self.app.report_file) # we should not have reported the crash self.assertEqual(self.app.crashdb.latest_id(), -1) self.assertEqual(self.app.open_url.call_count, 0) # no progress dialog for non-accepting DB info_collection_window_show_mock.assert_not_called() # data was collected for whoopsie r = self.app.report self.assertEqual(r['ProblemType'], 'Crash') self.assertEqual(r['ExecutablePath'], '/bin/bash') self.assertTrue(r['Package'].startswith('bash ')) self.assertTrue('libc' in r['Dependencies']) self.assertTrue('Stacktrace' in r) @patch.object(GTKUserInterface, 'open_url') def test_kerneloops_nodetails(self, *args): '''Kernel oops report without showing details''' def cont(*args): if not self.app.w('continue_button').get_visible(): return True self.app.w('continue_button').clicked() return False # remove the crash from setUp() and create a kernel oops os.remove(self.app.report_file) kernel_oops = subprocess.Popen([kernel_oops_path], stdin=subprocess.PIPE) kernel_oops.communicate(b'Plasma conduit phase misalignment') self.assertEqual(kernel_oops.returncode, 0) GLib.timeout_add_seconds(60, cont) self.app.run_crashes() # we should have reported one crash self.assertEqual(self.app.crashdb.latest_id(), 0) r = self.app.crashdb.download(0) self.assertEqual(r['ProblemType'], 'KernelOops') self.assertEqual(r['OopsText'], 'Plasma conduit phase misalignment') # data was collected self.assertTrue('linux' in r['Package']) self.assertTrue('Plasma conduit' in r['Title']) if not r['Package'].endswith(' (not installed)'): self.assertTrue('Dependencies' in r) # URL was opened self.assertEqual(self.app.open_url.call_count, 1) def test_bug_report_installed_package(self): '''Bug report for installed package''' def c(*args): if not self.app.w('dont_send_button').get_visible(): return True self.app.w('dont_send_button').clicked() return False self.app.report_file = None self.app.options.package = 'bash' GLib.timeout_add_seconds(60, c) self.app.run_report_bug() self.assertEqual(self.app.report['ProblemType'], 'Bug') self.assertEqual(self.app.report['SourcePackage'], 'bash') self.assertTrue(self.app.report['Package'].startswith('bash ')) self.assertNotEqual(self.app.report['Dependencies'], '') def test_bug_report_uninstalled_package(self): '''Bug report for uninstalled package''' def c(*args): if not self.app.w('dont_send_button').get_visible(): return True self.app.w('dont_send_button').clicked() return False pkg = apport.packaging.get_uninstalled_package() self.app.report_file = None self.app.options.package = pkg GLib.timeout_add_seconds(60, c) self.app.run_report_bug() self.assertEqual(self.app.report['ProblemType'], 'Bug') self.assertEqual(self.app.report['SourcePackage'], apport.packaging.get_source(pkg)) self.assertEqual(self.app.report['Package'], '%s (not installed)' % pkg) @patch.object(GTKUserInterface, 'open_url') def test_update_report(self, *args): '''Updating an existing report''' self.app.report_file = None def cont(*args): if self.app.tree_model.get_iter_first() is None: return True self.app.w('continue_button').clicked() return False # upload empty report id = self.app.crashdb.upload({}) self.assertEqual(id, 0) self.app.options.update_report = 0 self.app.options.package = 'bash' GLib.timeout_add(200, cont) self.app.run_update_report() # no new bug reported self.assertEqual(self.app.crashdb.latest_id(), 0) # bug was updated r = self.app.crashdb.download(0) self.assertTrue(r['Package'].startswith('bash ')) self.assertTrue('libc' in r['Dependencies']) self.assertTrue('DistroRelease' in r) # No URL in this mode self.assertEqual(self.app.open_url.call_count, 0) @patch.object(GTKUserInterface, 'open_url') def test_update_report_different_binary_source(self, *args): '''Updating an existing report on a source package which does not have a binary of the same name''' self.app.report_file = None def cont(*args): if self.app.tree_model.get_iter_first() is None: return True self.app.w('continue_button').clicked() return False # this test assumes that the source package name is not an # installed binary package source_pkg = "shadow" self.assertRaises(ValueError, apport.packaging.get_version, source_pkg) # create source package hook, as otherwise there is nothing to collect with open(os.path.join(self.hook_dir, 'source_%s.py' % source_pkg), 'w') as f: f.write('def add_info(r, ui):\n r["MachineType"]="Laptop"\n') # upload empty report id = self.app.crashdb.upload({}) self.assertEqual(id, 0) # run in update mode for that bug self.app.options.update_report = 0 self.app.options.package = source_pkg GLib.timeout_add(200, cont) self.app.run_update_report() # no new bug reported self.assertEqual(self.app.crashdb.latest_id(), 0) # bug was updated r = self.app.crashdb.download(0) self.assertTrue('ProcEnviron' in r) self.assertTrue('DistroRelease' in r) self.assertTrue('Uname' in r) self.assertEqual(r['MachineType'], 'Laptop') # No URL in this mode self.assertEqual(self.app.open_url.call_count, 0) @patch.object(GTKUserInterface, 'get_desktop_entry') def test_missing_icon(self, *args): # LP: 937354 self.app.report['ProblemType'] = 'Crash' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' self.app.get_desktop_entry.return_value = {'name': 'apport', 'icon': 'nonexistent'} GLib.idle_add(Gtk.main_quit) self.app.ui_present_report_details(True) def test_resizing(self): '''Problem report window resizability and sizing.''' def show_details(data): if not self.app.w('show_details').get_visible(): return True data['orig_size'] = self.app.w('dialog_crash_new').get_size() data['orig_resizable'] = self.app.w('dialog_crash_new').get_resizable() self.app.w('show_details').clicked() GLib.timeout_add(200, hide_details, data) return False def hide_details(data): # wait until data collection is done and tree filled if self.app.tree_model.get_iter_first() is None: return True data['detail_size'] = self.app.w('dialog_crash_new').get_size() data['detail_resizable'] = self.app.w('dialog_crash_new').get_resizable() self.app.w('show_details').clicked() GLib.timeout_add(200, details_hidden, data) return False def details_hidden(data): # wait until data collection is done and tree filled if self.app.w('details_scrolledwindow').get_visible(): return True data['hidden_size'] = self.app.w('dialog_crash_new').get_size() data['hidden_resizable'] = self.app.w('dialog_crash_new').get_resizable() Gtk.main_quit() data = {} GLib.timeout_add(200, show_details, data) self.app.run_crash(self.app.report_file) # when showing details, dialog should get considerably bigger self.assertGreater(data['detail_size'][1], data['orig_size'][1] + 100) # when hiding details, original size should be restored self.assertEqual(data['orig_size'], data['hidden_size']) # should only be resizable in details mode self.assertFalse(data['orig_resizable']) self.assertTrue(data['detail_resizable']) self.assertFalse(data['hidden_resizable']) def test_dialog_nonascii(self): '''Non-ASCII title/text in dialogs''' def close(response): if not self.app.md: return True self.app.md.response(response) return False # unicode arguments GLib.timeout_add(200, close, 0) self.app.ui_info_message(b'title \xe2\x99\xaa'.decode('UTF-8'), b'text \xe2\x99\xaa'.decode('UTF-8')) # byte array arguments (in Python 2) if sys.version < '3': GLib.timeout_add(200, close, 0) self.app.ui_info_message(b'title \xe2\x99\xaa', b'text \xe2\x99\xaa') # with URLs GLib.timeout_add(200, close, 0) self.app.ui_info_message('title', b'http://example.com \xe2\x99\xaa'.decode('UTF-8')) if sys.version < '3': GLib.timeout_add(200, close, 0) self.app.ui_info_message('title', b'http://example.com \xe2\x99\xaa') def test_immediate_close(self): '''Close details window immediately''' # this reproduces https://launchpad.net/bugs/938090 self.app.w('dialog_crash_new').destroy() GLib.idle_add(Gtk.main_quit) self.app.run_crash(self.app.report_file) @patch.object(GTKUserInterface, 'ui_start_upload_progress') def test_close_during_collect(self, *args): '''Close details window during information collection''' def show_details(*args): if not self.app.w('show_details').get_visible(): return True self.app.w('show_details').clicked() GLib.timeout_add(200, close) return False def close(*args): self.app.w('dialog_crash_new').destroy() return False GLib.timeout_add(200, show_details) self.app.run_crash(self.app.report_file) self.assertEqual(self.app.ui_start_upload_progress.call_count, 0) unittest.main() ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/test/test_ui_kde.py������������������������������������������������������������������0000664�0000000�0000000�00000072747�14416106601�013722� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'''Qt 5 Apport User Interface tests''' # Copyright (C) 2015 Harald Sitter <sitter@kde.org> # Copyright (C) 2012 Canonical Ltd. # Author: Evan Dandrea <evan.dandrea@canonical.com> # # 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. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import contextlib import unittest import tempfile import sys import os import shutil import typing from importlib.machinery import SourceFileLoader from unittest.mock import MagicMock, patch try: from PyQt5.QtCore import QTimer, QCoreApplication from PyQt5.QtWidgets import QApplication, QTreeWidget from PyQt5.QtGui import QIcon except ImportError as e: sys.stderr.write('SKIP: PyQt/PyKDE not available: %s\n' % str(e)) sys.exit(0) import apport from apport import unicode_gettext as _ import apport.crashdb_impl.memory if os.environ.get('APPORT_TEST_LOCAL'): apport_kde_path = 'kde/apport-kde' else: apport_kde_path = os.path.join(os.environ.get('APPORT_DATA_DIR', '/usr/share/apport'), 'apport-kde') apport_kde = SourceFileLoader('', apport_kde_path).load_module() MainUserInterface = apport_kde.MainUserInterface # Work around MainUserInterface using basename to find the KDE UI file. sys.argv[0] = apport_kde_path @contextlib.contextmanager def wrap_object( target: object, attribute: str ) -> typing.Generator[MagicMock, None, None]: """Wrap the named member on an object with a mock object. wrap_object() can be used as a context manager. Inside the body of the with statement, the attribute of the target is wrapped with a :class:`unittest.mock.MagicMock` object. When the with statement exits the patch is undone. The instance argument 'self' of the wrapped attribute is intentionally not logged in the MagicMock call. Therefore wrap_object() can be used to check all calls to the object, but not differentiate between different instances. See also https://stackoverflow.com/questions/44768483 for the use case. """ mock = MagicMock() real_attribute = getattr(target, attribute) def mocked_attribute(self, *args, **kwargs): mock.__call__(*args, **kwargs) return real_attribute(self, *args, **kwargs) with patch.object(target, attribute, mocked_attribute): yield mock class T(unittest.TestCase): COLLECTING_DIALOG = unittest.mock.call( 'Collecting Problem Information', 'Collecting problem information', 'The collected information can be sent to the developers to improve ' 'the application. This might take a few minutes.', ) UPLOADING_DIALOG = unittest.mock.call( 'Uploading Problem Information', 'Uploading problem information', 'The collected information is being sent to the bug tracking system. ' 'This might take a few minutes.', ) @classmethod def setUpClass(klass): r = apport.Report() r.add_os_info() klass.distro = r['DistroRelease'] def setUp(self): self.report_dir = tempfile.mkdtemp() apport.fileutils.report_dir = self.report_dir os.environ['APPORT_REPORT_DIR'] = self.report_dir # do not cause eternal hangs because of error dialog boxes os.environ['APPORT_DISABLE_DISTRO_CHECK'] = '1' self.app = MainUserInterface() # use in-memory crashdb self.app.crashdb = apport.crashdb_impl.memory.CrashDatabase(None, {}) # disable package hooks, as they might ask for sudo password and other # interactive bits; allow tests to install their own hooks self.hook_dir = tempfile.mkdtemp() apport.report._hook_dir = self.hook_dir apport.report._common_hook_dir = self.hook_dir # test report self.app.report_file = os.path.join(self.report_dir, 'bash.crash') self.app.report = apport.Report() self.app.report['ExecutablePath'] = '/bin/bash' self.app.report['Signal'] = '11' self.app.report['CoreDump'] = b'\x01\x02' with open(self.app.report_file, 'wb') as f: self.app.report.write(f) def tearDown(self): if self.app.dialog: QCoreApplication.processEvents() self.app.dialog.done(0) QCoreApplication.processEvents() shutil.rmtree(self.report_dir) shutil.rmtree(self.hook_dir) def test_close_button(self): '''Clicking the close button on the window does not report the crash.''' def c(*args): self.app.dialog.reject() QTimer.singleShot(0, c) result = self.app.ui_present_report_details(True) self.assertFalse(result['report']) def test_kernel_crash_layout(self): ''' +-----------------------------------------------------------------+ | [ logo ] YourDistro has experienced an internal error. | | | | [x] Send an error report to help fix this problem. | | | | [ Show Details ] [ Continue ] | +-----------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'KernelCrash' QTimer.singleShot(0, QCoreApplication.quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.dialog.windowTitle(), self.distro.split()[0]) self.assertEqual(self.app.dialog.heading.text(), _('Sorry, %s has experienced an internal error.') % self.distro) self.assertTrue(self.app.dialog.send_error_report.isVisible()) self.assertTrue(self.app.dialog.send_error_report.isChecked()) self.assertTrue(self.app.dialog.details.isVisible()) self.assertTrue(self.app.dialog.continue_button.isVisible()) self.assertEqual(self.app.dialog.continue_button.text(), _('Continue')) self.assertFalse(self.app.dialog.closed_button.isVisible()) self.assertFalse(self.app.dialog.text.isVisible()) def test_package_crash_layout(self): ''' +-----------------------------------------------------------------+ | [ error ] Sorry, a problem occurred while installing software. | | Package: apport 1.2.3~0ubuntu1 | | | | [x] Send an error report to help fix this problem. | | | | [ Show Details ] [ Continue ] | +-----------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'Package' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' QTimer.singleShot(0, QCoreApplication.quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.dialog.windowTitle(), self.distro.split()[0]) self.assertEqual(self.app.dialog.heading.text(), _('Sorry, a problem occurred while installing software.')) self.assertTrue(self.app.dialog.send_error_report.isVisible()) self.assertTrue(self.app.dialog.send_error_report.isChecked()) self.assertTrue(self.app.dialog.details.isVisible()) self.assertTrue(self.app.dialog.continue_button.isVisible()) self.assertEqual(self.app.dialog.continue_button.text(), _('Continue')) self.assertFalse(self.app.dialog.closed_button.isVisible()) self.assertEqual(self.app.dialog.text.text(), _('Package: apport 1.2.3~0ubuntu1')) def test_regular_crash_thread_layout(self): '''A thread of execution has failed, but the application persists.''' self.app.report['ProblemType'] = 'Crash' self.app.report['ProcStatus'] = 'Name:\tupstart\nPid:\t1' QTimer.singleShot(0, QCoreApplication.quit) self.app.ui_present_report_details(True) self.assertFalse(self.app.dialog.closed_button.isVisible()) self.assertEqual(self.app.dialog.continue_button.text(), _('Continue')) def test_regular_crash_layout(self): ''' +-----------------------------------------------------------------+ | [ apport ] The application Apport has closed unexpectedly. | | | | [x] Send an error report to help fix this problem. | | [ ] Ignore future problems of this program version. | | | | [ Show Details ] [ Continue ] | +-----------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'Crash' self.app.report['CrashCounter'] = '1' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' with tempfile.NamedTemporaryFile() as fp: fp.write(b'''[Desktop Entry] Version=1.0 Name=Apport Type=Application''') fp.flush() self.app.report['DesktopFile'] = fp.name QTimer.singleShot(0, QCoreApplication.quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.dialog.windowTitle(), self.distro.split()[0]) self.assertEqual(self.app.dialog.heading.text(), _('The application Apport has closed unexpectedly.')) self.assertTrue(self.app.dialog.send_error_report.isVisible()) self.assertTrue(self.app.dialog.send_error_report.isChecked()) self.assertTrue(self.app.dialog.details.isVisible()) # no ProcCmdline, cannot restart self.assertTrue(self.app.dialog.continue_button.isVisible()) self.assertEqual(self.app.dialog.continue_button.text(), _('Continue')) self.assertFalse(self.app.dialog.closed_button.isVisible()) self.assertFalse(self.app.dialog.text.isVisible()) self.assertFalse(self.app.dialog.text.isVisible()) self.assertTrue(self.app.dialog.ignore_future_problems.isVisible()) self.assertTrue(str(self.app.dialog.ignore_future_problems.text()).endswith( 'of this program version')) def test_regular_crash_layout_restart(self): ''' +-----------------------------------------------------------------+ | [ apport ] The application Apport has closed unexpectedly. | | | | [x] Send an error report to help fix this problem. | | [ ] Ignore future problems of this program version. | | | | [ Show Details ] [ Leave Closed ] [ Relaunch ] | +-----------------------------------------------------------------+ ''' # pretend we got called through run_crashes() which sets offer_restart self.app.offer_restart = True self.app.report['ProblemType'] = 'Crash' self.app.report['CrashCounter'] = '1' self.app.report['ProcCmdline'] = 'apport-bug apport' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' with tempfile.NamedTemporaryFile() as fp: fp.write(b'''[Desktop Entry] Version=1.0 Name=Apport Type=Application''') fp.flush() self.app.report['DesktopFile'] = fp.name QTimer.singleShot(0, QCoreApplication.quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.dialog.windowTitle(), self.distro.split()[0]) self.assertEqual(self.app.dialog.heading.text(), _('The application Apport has closed unexpectedly.')) self.assertTrue(self.app.dialog.send_error_report.isVisible()) self.assertTrue(self.app.dialog.send_error_report.isChecked()) self.assertTrue(self.app.dialog.details.isVisible()) self.assertTrue(self.app.dialog.continue_button.isVisible()) self.assertEqual(self.app.dialog.continue_button.text(), _('Relaunch')) self.assertTrue(self.app.dialog.closed_button.isVisible()) self.assertFalse(self.app.dialog.text.isVisible()) self.assertFalse(self.app.dialog.text.isVisible()) self.assertTrue(self.app.dialog.ignore_future_problems.isVisible()) self.assertTrue(str(self.app.dialog.ignore_future_problems.text()).endswith( 'of this program version')) def test_regular_crash_layout_norestart(self): ''' +-----------------------------------------------------------------+ | [ apport ] The application Apport has closed unexpectedly. | | | | [x] Send an error report to help fix this problem. | | [ ] Ignore future problems of this program version. | | | | [ Show Details ] [ Continue ] | +-----------------------------------------------------------------+ ''' # pretend we did not get called through run_crashes(), thus no offer_restart self.app.report['ProblemType'] = 'Crash' self.app.report['CrashCounter'] = '1' self.app.report['ProcCmdline'] = 'apport-bug apport' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' with tempfile.NamedTemporaryFile() as fp: fp.write(b'''[Desktop Entry] Version=1.0 Name=Apport Type=Application''') fp.flush() self.app.report['DesktopFile'] = fp.name QTimer.singleShot(0, QCoreApplication.quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.dialog.heading.text(), _('The application Apport has closed unexpectedly.')) self.assertTrue(self.app.dialog.send_error_report.isVisible()) self.assertTrue(self.app.dialog.send_error_report.isChecked()) self.assertTrue(self.app.dialog.details.isVisible()) self.assertTrue(self.app.dialog.continue_button.isVisible()) self.assertEqual(self.app.dialog.continue_button.text(), _('Continue')) self.assertFalse(self.app.dialog.closed_button.isVisible()) def test_system_crash_layout(self): ''' +-----------------------------------------------------------------+ | [ logo ] Sorry, YourDistro has experienced an internal error. | | If you notice further problems, try restarting the | | computer | | | | [x] Send an error report to help fix this problem. | | [ ] Ignore future problems of this type. | | | | [ Show Details ] [ Continue ] | +-----------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'Crash' self.app.report['CrashCounter'] = '1' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' QTimer.singleShot(0, QCoreApplication.quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.dialog.windowTitle(), self.distro.split()[0]) self.assertEqual(self.app.dialog.heading.text(), _('Sorry, %s has experienced an internal error.') % self.distro) self.assertEqual(self.app.dialog.text.text(), _('If you notice further problems, try restarting the computer.')) self.assertTrue(self.app.dialog.text.isVisible()) self.assertTrue(self.app.dialog.send_error_report.isVisible()) self.assertTrue(self.app.dialog.send_error_report.isChecked()) self.assertTrue(self.app.dialog.details.isVisible()) self.assertTrue(self.app.dialog.continue_button.isVisible()) self.assertEqual(self.app.dialog.continue_button.text(), _('Continue')) self.assertFalse(self.app.dialog.closed_button.isVisible()) self.assertTrue(self.app.dialog.ignore_future_problems.isVisible()) self.assertTrue(str(self.app.dialog.ignore_future_problems.text()).endswith( 'of this type')) def test_apport_bug_package_layout(self): ''' +-------------------------------------------------------------------+ | [ error ] Send problem report to the developers? | | | | +----------------------------------------------------+ | | | |> ApportVersion | | | | ... | | | +----------------------------------------------------+ | | | | [ Cancel ] [ Send ] | +-------------------------------------------------------------------+ ''' self.app.report_file = None QTimer.singleShot(0, QCoreApplication.quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.dialog.windowTitle(), self.distro.split()[0]) self.assertEqual(self.app.dialog.heading.text(), _('Send problem report to the developers?')) self.assertFalse(self.app.dialog.text.isVisible()) self.assertFalse(self.app.dialog.send_error_report.isVisible()) self.assertTrue(self.app.dialog.send_error_report.isChecked()) self.assertFalse(self.app.dialog.details.isVisible()) self.assertTrue(self.app.dialog.continue_button.isVisible()) self.assertEqual(self.app.dialog.continue_button.text(), _('Send')) self.assertFalse(self.app.dialog.closed_button.isVisible()) self.assertTrue(self.app.dialog.cancel_button.isVisible()) self.assertTrue(self.app.dialog.treeview.isVisible()) def test_recoverable_crash_layout(self): ''' +-----------------------------------------------------------------+ | [ logo ] The application Foo has experienced an internal error. | | Developer-specified error text. | | | | [x] Send an error report to help fix this problem. | | | | [ Show Details ] [ Continue ] | +-----------------------------------------------------------------+ ''' self.app.report['ProblemType'] = 'RecoverableProblem' self.app.report['Package'] = 'apport 1.2.3~0ubuntu1' self.app.report['DialogBody'] = 'Some developer-specified error text.' with tempfile.NamedTemporaryFile() as fp: fp.write(b'''[Desktop Entry] Version=1.0 Name=Apport Type=Application''') fp.flush() self.app.report['DesktopFile'] = fp.name QTimer.singleShot(0, QCoreApplication.quit) self.app.ui_present_report_details(True) self.assertEqual(self.app.dialog.windowTitle(), self.distro.split()[0]) msg = 'The application Apport has experienced an internal error.' self.assertEqual(self.app.dialog.heading.text(), msg) msg = 'Some developer-specified error text.' self.assertEqual(self.app.dialog.text.text(), msg) self.assertTrue(self.app.dialog.text.isVisible()) self.assertTrue(self.app.dialog.send_error_report.isVisible()) self.assertTrue(self.app.dialog.send_error_report.isChecked()) self.assertTrue(self.app.dialog.details.isVisible()) self.assertTrue(self.app.dialog.continue_button.isVisible()) self.assertEqual(self.app.dialog.continue_button.text(), _('Continue')) self.assertFalse(self.app.dialog.closed_button.isVisible()) @patch.object(MainUserInterface, 'open_url') @patch('apport.report.Report.add_gdb_info') @patch('apport.fileutils.allowed_to_report', unittest.mock.MagicMock(return_value=True)) def test_1_crash_nodetails(self, *args): '''Crash report without showing details''' def cont(*args): if self.app.dialog and self.app.dialog.continue_button.isVisible(): self.app.dialog.continue_button.click() return # try again QTimer.singleShot(1000, cont) QTimer.singleShot(1000, cont) with wrap_object(apport_kde.ProgressDialog, "__init__") as progress_dialog: self.app.run_crash(self.app.report_file) # we should have reported one crash self.assertEqual(self.app.crashdb.latest_id(), 0) r = self.app.crashdb.download(0) self.assertEqual(r['ProblemType'], 'Crash') self.assertEqual(r['ExecutablePath'], '/bin/bash') # should show a progress bar for info collection progress_dialog.assert_has_calls([self.COLLECTING_DIALOG, self.UPLOADING_DIALOG]) # data was collected self.assertTrue(r['Package'].startswith('bash ')) self.assertTrue('libc' in r['Dependencies']) # URL was opened self.assertEqual(self.app.open_url.call_count, 1) @patch.object(MainUserInterface, 'open_url') @patch('apport.report.Report.add_gdb_info') @patch('apport.fileutils.allowed_to_report', unittest.mock.MagicMock(return_value=True)) def test_1_crash_details(self, *args): '''Crash report with showing details''' def show_details(*args): if self.app.dialog and self.app.dialog.show_details.isVisible(): self.app.dialog.show_details.click() QTimer.singleShot(1000, cont) return # try again QTimer.singleShot(200, show_details) def cont(*args): # wait until data collection is done and tree filled details = self.app.dialog.findChild(QTreeWidget, 'details') if details.topLevelItemCount() == 0: QTimer.singleShot(200, cont) return if self.app.dialog and self.app.dialog.continue_button.isVisible(): self.app.dialog.continue_button.click() return # try again QTimer.singleShot(200, cont) QTimer.singleShot(200, show_details) with wrap_object(apport_kde.ProgressDialog, "__init__") as progress_dialog: self.app.run_crash(self.app.report_file) # we should have reported one crash self.assertEqual(self.app.crashdb.latest_id(), 0) r = self.app.crashdb.download(0) self.assertEqual(r['ProblemType'], 'Crash') self.assertEqual(r['ExecutablePath'], '/bin/bash') # we already collected details, do not show the progress dialog again progress_dialog.assert_called_once_with(*self.UPLOADING_DIALOG.args) # data was collected self.assertTrue(r['Package'].startswith('bash ')) self.assertTrue('libc' in r['Dependencies']) # URL was opened self.assertEqual(self.app.open_url.call_count, 1) @patch.object(MainUserInterface, 'open_url') @patch('apport.report.Report.add_gdb_info') @patch('apport.fileutils.allowed_to_report', unittest.mock.MagicMock(return_value=True)) def test_1_crash_noaccept(self, *args): '''Crash report with non-accepting crash DB''' def cont(*args): if self.app.dialog and self.app.dialog.continue_button.isVisible(): self.app.dialog.continue_button.click() return # try again QTimer.singleShot(1000, cont) QTimer.singleShot(1000, cont) self.app.crashdb.options['problem_types'] = ['bug'] with wrap_object(apport_kde.ProgressDialog, "__init__") as progress_dialog: self.app.run_crash(self.app.report_file) # we should not have reported the crash self.assertEqual(self.app.crashdb.latest_id(), -1) self.assertEqual(self.app.open_url.call_count, 0) # no progress dialog for non-accepting DB progress_dialog.assert_not_called() # data was collected for whoopsie r = self.app.report self.assertEqual(r['ProblemType'], 'Crash') self.assertEqual(r['ExecutablePath'], '/bin/bash') self.assertTrue(r['Package'].startswith('bash ')) self.assertTrue('libc' in r['Dependencies']) def test_bug_report_installed_package(self): '''Bug report for installed package''' self.app.report_file = None self.app.options.package = 'bash' def c(*args): if self.app.dialog and self.app.dialog.cancel_button.isVisible(): self.app.dialog.cancel_button.click() return # try again QTimer.singleShot(1000, c) QTimer.singleShot(1000, c) self.app.run_report_bug() self.assertEqual(self.app.report['ProblemType'], 'Bug') self.assertEqual(self.app.report['SourcePackage'], 'bash') self.assertTrue(self.app.report['Package'].startswith('bash ')) self.assertNotEqual(self.app.report['Dependencies'], '') def test_bug_report_uninstalled_package(self): '''Bug report for uninstalled package''' pkg = apport.packaging.get_uninstalled_package() self.app.report_file = None self.app.options.package = pkg def c(*args): if self.app.dialog and self.app.dialog.cancel_button.isVisible(): self.app.dialog.cancel_button.click() return # try again QTimer.singleShot(1000, c) QTimer.singleShot(1000, c) self.app.run_report_bug() self.assertEqual(self.app.report['ProblemType'], 'Bug') self.assertEqual(self.app.report['SourcePackage'], apport.packaging.get_source(pkg)) self.assertEqual(self.app.report['Package'], '%s (not installed)' % pkg) @patch.object(MainUserInterface, 'open_url') def test_1_update_report(self, *args): '''Updating an existing report''' self.app.report_file = None def cont(*args): if self.app.dialog and self.app.dialog.continue_button.isVisible(): self.app.dialog.continue_button.click() return # try again QTimer.singleShot(200, cont) # upload empty report id = self.app.crashdb.upload({}) self.assertEqual(id, 0) self.app.options.update_report = 0 self.app.options.package = 'bash' QTimer.singleShot(200, cont) self.app.run_update_report() # no new bug reported self.assertEqual(self.app.crashdb.latest_id(), 0) # bug was updated r = self.app.crashdb.download(0) self.assertTrue(r['Package'].startswith('bash ')) self.assertTrue('libc' in r['Dependencies']) self.assertTrue('DistroRelease' in r) # No URL in this mode self.assertEqual(self.app.open_url.call_count, 0) @patch.object(MainUserInterface, 'open_url') def test_1_update_report_different_binary_source(self, *args): '''Updating an existing report on a source package which does not have a binary of the same name''' self.app.report_file = None def cont(*args): if self.app.dialog and self.app.dialog.continue_button.isVisible(): self.app.dialog.continue_button.click() return # try again QTimer.singleShot(200, cont) # this test assumes that the source package name is not an # installed binary package source_pkg = "shadow" self.assertRaises(ValueError, apport.packaging.get_version, source_pkg) # create source package hook, as otherwise there is nothing to collect with open(os.path.join(self.hook_dir, 'source_%s.py' % source_pkg), 'w') as f: f.write('def add_info(r, ui):\n r["MachineType"]="Laptop"\n') # upload empty report id = self.app.crashdb.upload({}) self.assertEqual(id, 0) # run in update mode for that bug self.app.options.update_report = 0 self.app.options.package = source_pkg QTimer.singleShot(200, cont) self.app.run_update_report() # no new bug reported self.assertEqual(self.app.crashdb.latest_id(), 0) # bug was updated r = self.app.crashdb.download(0) self.assertTrue('ProcEnviron' in r) self.assertTrue('DistroRelease' in r) self.assertTrue('Uname' in r) self.assertEqual(r['MachineType'], 'Laptop') # No URL in this mode self.assertEqual(self.app.open_url.call_count, 0) def test_administrator_disabled_reporting(self): QTimer.singleShot(0, QCoreApplication.quit) self.app.ui_present_report_details(False) self.assertFalse(self.app.dialog.send_error_report.isVisible()) self.assertFalse(self.app.dialog.send_error_report.isChecked()) app = QApplication(sys.argv) app.applicationName = 'apport-kde' app.applicationDisplayName = _('Apport') app.windowIcon = QIcon.fromTheme('apport') unittest.main() �������������������������apport-2.20.11/test/test_user_group.py��������������������������������������������������������������0000664�0000000�0000000�00000001605�14416106601�014635� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2023 Canonical Ltd. # Author: Benjamin Drung <benjamin.drung@canonical.com> # SPDX-License-Identifier: GPL-2.0-or-later """Unit tests for apport.user_group.""" import unittest from unittest.mock import MagicMock, patch from apport.user_group import get_process_user_and_group class TestUserGroup(unittest.TestCase): # pylint: disable=missing-function-docstring """Unit tests for apport.user_group.""" @patch("os.getgid", MagicMock(return_value=0)) @patch("os.getuid", MagicMock(return_value=0)) def test_get_process_user_and_group_is_root(self) -> None: self.assertTrue(get_process_user_and_group().is_root()) @patch("os.getgid", MagicMock(return_value=2000)) @patch("os.getuid", MagicMock(return_value=3000)) def test_get_process_user_and_group_is_not_root(self) -> None: self.assertFalse(get_process_user_and_group().is_root()) ���������������������������������������������������������������������������������������������������������������������������apport-2.20.11/udev/��������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13562354544�011030� 5����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/udev/50-apport.rules�����������������������������������������������������������������0000664�0000000�0000000�00000000245�13562354544�013634� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# firmware dumps from iwlmvm iwlwifi driver DRIVER=="iwlwifi", ACTION=="change", ENV{EVENT}=="error_dump", RUN+="/usr/share/apport/iwlwifi_error_dump $env{DEVPATH}" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������apport-2.20.11/use-local����������������������������������������������������������������������������0000775�0000000�0000000�00000000576�13717762167�011715� 0����������������������������������������������������������������������������������������������������ustar ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh -e # This changes the kernel's core_pattern pipeline to use the local tree's # apport program instead of the system version. This is useful if you are # making changes to bin/apport and want to test them without copying them to # /usr/share/apport/ every time. echo "|$(readlink -f $(dirname $0)/data/apport) -p%p -s%s -c%c -d%d -P%P" | tee /proc/sys/kernel/core_pattern ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������